diff --git a/gltf.hpp b/gltf.hpp index 3e1a55d..936c45a 100644 --- a/gltf.hpp +++ b/gltf.hpp @@ -1,61 +1,62 @@ -struct Mesh { - const D3DXVECTOR3 * position; - const DWORD position_size; - - const D3DXVECTOR3 * normal; - const DWORD normal_size; - - const D3DXVECTOR2 * texcoord_0; - const DWORD texcoord_0_size; - - const D3DXVECTOR4 * weights_0; - const DWORD weights_0_size; - - const D3DXVECTOR4 * joints_0; - const DWORD joints_0_size; - - const DWORD * indices; - const DWORD indices_size; -}; - -struct Skin; - -struct Node { - const Skin * skin; // skin index (global) - const Mesh * mesh; // mesh index (global) - const D3DXVECTOR3 translation; - const D3DXQUATERNION rotation; - const D3DXVECTOR3 scale; -}; - -struct Skin { - const D3DXMATRIX * inverse_bind_matrices; // accessor - const Node ** joints; - DWORD joints_length; -}; - -enum AnimationChannelPath { - ACP__WEIGHTS, - ACP__ROTATION, - ACP__TRANSLATION, - ACP__SCALE, -}; - -struct AnimationSampler { - const float * input; // accessor index, containing keyframe timestamps - const void * output; // accessor index, containing keyframe values (type depends on channel target path) - const int length; -}; - -struct AnimationChannel { - const AnimationSampler * sampler; // sampler index, this animation - struct { - const Node * node; // node index - const AnimationChannelPath path; // property to animate - } target; -}; - -//struct Animation { -// const AnimationChannel * channels; -// const AnimationSampler * samplers; -//}; +#ifndef GLTF_HPP_ +#define GLTF_HPP_ + +struct Mesh { + const D3DXVECTOR3 * position; + const DWORD position_size; + + const D3DXVECTOR3 * normal; + const DWORD normal_size; + + const D3DXVECTOR2 * texcoord_0; + const DWORD texcoord_0_size; + + const D3DXVECTOR4 * weights_0; + const DWORD weights_0_size; + + const D3DXVECTOR4 * joints_0; + const DWORD joints_0_size; + + const DWORD * indices; + const DWORD indices_size; +}; + +struct Skin; + +struct Node { + const DWORD parent_ix; + const Skin * skin; // skin index (global) + const Mesh * mesh; // mesh index (global) + const D3DXVECTOR3 translation; + const D3DXQUATERNION rotation; + const D3DXVECTOR3 scale; +}; + +struct Skin { + const D3DXMATRIX * inverse_bind_matrices; // accessor + const int * joints; + DWORD joints_length; +}; + +enum AnimationChannelPath { + ACP__WEIGHTS, + ACP__ROTATION, + ACP__TRANSLATION, + ACP__SCALE, +}; + +struct AnimationSampler { + const float * input; // accessor index, containing keyframe timestamps + const void * output; // accessor index, containing keyframe values (type depends on channel target path) + const int length; +}; + +struct AnimationChannel { + const AnimationSampler * sampler; // sampler index, this animation + struct { + const int node_ix; + const AnimationChannelPath path; // property to animate + } target; +}; + +#endif diff --git a/gltf_instance.hpp b/gltf_instance.hpp new file mode 100644 index 0000000..385c52a --- /dev/null +++ b/gltf_instance.hpp @@ -0,0 +1,10 @@ +#ifndef GLTF_INSTANCE_HPP_ +#define GLTF_INSTANCE_HPP_ + +struct NodeInstance { + D3DXVECTOR3 translation; + D3DXQUATERNION rotation; + D3DXVECTOR3 scale; +}; + +#endif diff --git a/main.cpp b/main.cpp index 356cc99..154986a 100644 --- a/main.cpp +++ b/main.cpp @@ -3,9 +3,13 @@ #include #include #include +#include #include "gltf.hpp" -#include "skin.hpp" +#include "gltf_instance.hpp" +#include "rigged_simple.hpp" + +#define ROOT_MESH_NODE node_2 HINSTANCE g_hInstance = NULL; HWND g_hWnd = NULL; @@ -42,6 +46,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); HRESULT InitDirect3DDevice(); void Render(); BOOL Resize(); +void InitializeNodeInstances(); struct WindowSize { UINT Width; @@ -88,6 +93,8 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi return 0; } + InitializeNodeInstances(); + MSG msg = {}; while (msg.message != WM_QUIT) { if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { @@ -399,17 +406,18 @@ HRESULT InitDirect3DDevice() ////////////////////////////////////////////////////////////////////// // vertex buffers ////////////////////////////////////////////////////////////////////// -#define MESH mesh_0 + + const Mesh * mesh = ROOT_MESH_NODE.mesh; ID3D10Buffer * pVertexBuffers[3]; // position bd.Usage = D3D10_USAGE_DEFAULT; - bd.ByteWidth = MESH.position_size; + bd.ByteWidth = mesh->position_size; bd.BindFlags = D3D10_BIND_VERTEX_BUFFER; bd.CPUAccessFlags = 0; bd.MiscFlags = 0; - initData.pSysMem = MESH.position; + initData.pSysMem = mesh->position; hr = g_pd3dDevice->CreateBuffer(&bd, &initData, &pVertexBuffers[0]); if (FAILED(hr)) { print("CreateBuffer\n"); @@ -418,11 +426,11 @@ HRESULT InitDirect3DDevice() // weights bd.Usage = D3D10_USAGE_DEFAULT; - bd.ByteWidth = MESH.weights_0_size; + bd.ByteWidth = mesh->weights_0_size; bd.BindFlags = D3D10_BIND_VERTEX_BUFFER; bd.CPUAccessFlags = 0; bd.MiscFlags = 0; - initData.pSysMem = MESH.weights_0; + initData.pSysMem = mesh->weights_0; hr = g_pd3dDevice->CreateBuffer(&bd, &initData, &pVertexBuffers[1]); if (FAILED(hr)) { print("CreateBuffer\n"); @@ -431,11 +439,11 @@ HRESULT InitDirect3DDevice() // joints bd.Usage = D3D10_USAGE_DEFAULT; - bd.ByteWidth = MESH.joints_0_size; + bd.ByteWidth = mesh->joints_0_size; bd.BindFlags = D3D10_BIND_VERTEX_BUFFER; bd.CPUAccessFlags = 0; bd.MiscFlags = 0; - initData.pSysMem = MESH.joints_0; + initData.pSysMem = mesh->joints_0; hr = g_pd3dDevice->CreateBuffer(&bd, &initData, &pVertexBuffers[2]); if (FAILED(hr)) { print("CreateBuffer\n"); @@ -443,9 +451,9 @@ HRESULT InitDirect3DDevice() } UINT stride[] = { - (sizeof (MESH.position[0])), - (sizeof (MESH.weights_0[0])), - (sizeof (MESH.joints_0[0])), + (sizeof (mesh->position[0])), + (sizeof (mesh->weights_0[0])), + (sizeof (mesh->joints_0[0])), }; UINT offset[] = { 0, 0, 0 }; g_pd3dDevice->IASetVertexBuffers(0, 3, pVertexBuffers, stride, offset); @@ -455,12 +463,12 @@ HRESULT InitDirect3DDevice() ////////////////////////////////////////////////////////////////////// bd.Usage = D3D10_USAGE_DEFAULT; - bd.ByteWidth = MESH.indices_size; + bd.ByteWidth = mesh->indices_size; //bd.ByteWidth = (sizeof (DWORD)) * indices_length; bd.BindFlags = D3D10_BIND_INDEX_BUFFER; bd.CPUAccessFlags = 0; bd.MiscFlags = 0; - initData.pSysMem = MESH.indices; + initData.pSysMem = mesh->indices; //initData.pSysMem = indices; hr = g_pd3dDevice->CreateBuffer(&bd, &initData, &g_pIndexBuffer); if (FAILED(hr)) @@ -476,7 +484,7 @@ HRESULT InitDirect3DDevice() D3DXMatrixIdentity(&g_World1); D3DXMatrixIdentity(&g_World2); - D3DXVECTOR3 Eye(0.0f, 0.0f, -3.0f); + D3DXVECTOR3 Eye(0.0f, 0.0f, -10.0f); D3DXVECTOR3 At(0.0f, 0.0f, 0.0f); D3DXVECTOR3 Up(0.0f, 1.0f, 0.0f); D3DXMatrixLookAtLH(&g_View, &Eye, &At, &Up); @@ -534,45 +542,6 @@ BOOL Resize() return true; } -/* -void Animate(float t) -{ - const float * frames = accessor_2; - const int frames_length = accessor_2_length; - - while (t >= frames[frames_length - 1]) { - t -= frames[frames_length - 1]; - } - - // find frame - int prev_ix = -1; - for (int i = 0; i < frames_length - 1; i++) { - if (frames[i] <= t && frames[i+1] >= t) { - prev_ix = i; - break; - } - } - if (prev_ix == -1) - return; - int next_ix = prev_ix + 1; - if (next_ix >= frames_length) - return; - - float lerp = (t - frames[prev_ix]) / (frames[next_ix] - frames[prev_ix]); - print("%f prev %d next %d lerp %f\n", t, prev_ix, next_ix, lerp); - - const D3DXQUATERNION * animation = (D3DXQUATERNION *)accessor_3; - D3DXQUATERNION rotation; - - D3DXQuaternionSlerp(&rotation, - &animation[prev_ix], - &animation[next_ix], - lerp); - - D3DXMatrixRotationQuaternion(&g_World1, &rotation); -} -*/ - static inline D3DXMATRIX MatrixTRS(const D3DXVECTOR3 * translation, const D3DXQUATERNION * rotation, const D3DXVECTOR3 * scaling) @@ -616,35 +585,98 @@ static inline float Lerp(const float * frames, float t, int frame_ix) D3DXMATRIX mJoints[2]; +NodeInstance node_inst[nodes_length]; + +void InitializeNodeInstances() +{ + for (int i = 0; i < nodes_length; i++) { + node_inst[i].translation = nodes[i]->translation; + node_inst[i].rotation = nodes[i]->rotation; + node_inst[i].scale = nodes[i]->scale; + } +} + +void VectorLerp(D3DXVECTOR3 * output, + const D3DXVECTOR3 * a, + const D3DXVECTOR3 * b, + const float t) +{ + *output = *a + t * (*b - *a); +} + void Animate(float t) { - t = loop(t, 5.5); + const AnimationChannel * channels = animation_0__channels; + const int channels_length = (sizeof (animation_0__channels)) / (sizeof (animation_0__channels[0])); - // animation_0__sampler_0 - const AnimationSampler * sampler = &animation_0__sampler_0; - const float * input = sampler->input; - const D3DXQUATERNION * output = (D3DXQUATERNION *)sampler->output; + t = loop(t, 2.0833330154418945); - int frame_ix = FindFrame(sampler->input, sampler->length, t); - float lerp = Lerp(sampler->input, t, frame_ix); - D3DXQUATERNION rotation; - D3DXQuaternionSlerp(&rotation, - &output[frame_ix], - &output[frame_ix+1], - lerp); + // find frame and lerp (same accessor for all channels) + const float * input = channels[0].sampler->input; + const int input_length = channels[0].sampler->length; - // joint 1 - const Skin * skin = &skin_0; - const Node * node = skin->joints[1]; + int frame_ix = FindFrame(input, input_length, t); + float lerp = Lerp(input, t, frame_ix); - // T * R * S - D3DXMATRIX global_transform = MatrixTRS(&node->translation, &rotation, &node->scale); + // sample all channels + for (int i = 0; i < channels_length; i++) { + const AnimationSampler * sampler = channels[i].sampler; + NodeInstance * instance = &node_inst[channels[i].target.node_ix]; + switch (channels[i].target.path) { + case ACP__TRANSLATION: + { + const D3DXVECTOR3 * output = (const D3DXVECTOR3 *)sampler->output; + VectorLerp(&instance->translation, + &output[frame_ix], + &output[frame_ix+1], + lerp); + break; + } + case ACP__ROTATION: + { + const D3DXQUATERNION * output = (const D3DXQUATERNION *)sampler->output; + D3DXQuaternionSlerp(&instance->rotation, + &output[frame_ix], + &output[frame_ix+1], + lerp); - D3DXMatrixIdentity(&mJoints[0]); + break; + } + case ACP__SCALE: + { + const D3DXVECTOR3 * output = (const D3DXVECTOR3 *)sampler->output; + VectorLerp(&instance->scale, + &output[frame_ix], + &output[frame_ix+1], + lerp); + break; + } + default: + assert(!"invalid sampler path"); + break; + } + } - const D3DXMATRIX& inverse_bind_matrix = skin->inverse_bind_matrices[1]; + // transform all joints + const Skin * skin = ROOT_MESH_NODE.skin; + assert(skin->joints_length == 2); + for (DWORD i = 0; i < skin->joints_length; i++) { + const int joint_ix = skin->joints[i]; + const NodeInstance * instance = &node_inst[joint_ix]; - mJoints[1] = inverse_bind_matrix * global_transform; + const D3DXMATRIX& inverse_bind_matrix = skin->inverse_bind_matrices[i]; + + // T * R * S + //&instance->translation, + //&instance->scale + D3DXVECTOR3 translation = D3DXVECTOR3(0, 0, 0); + D3DXVECTOR3 scale = D3DXVECTOR3(1, 1, 1); + D3DXMATRIX global_transform = MatrixTRS(&instance->translation, + &instance->rotation, + &instance->scale); + + mJoints[i] = inverse_bind_matrix * global_transform; + } } void Render() @@ -660,10 +692,19 @@ void Render() t = (dwTimeCur - dwTimeStart) / 1000.0f; #endif + D3DXMatrixIdentity(&mJoints[0]); + D3DXMatrixIdentity(&mJoints[1]); Animate(t); // first cube - //D3DXMatrixRotationZ(&g_World1, t); + + D3DXMATRIX rx; + D3DXMATRIX ry; + D3DXMatrixRotationX(&ry, D3DX_PI * -0.5); + D3DXMatrixRotationZ(&rx, D3DX_PI * 0.5); + D3DXMatrixMultiply(&g_World1, + &rx, + &ry); // lights D3DXVECTOR4 vLightDirs[2] = { @@ -707,9 +748,11 @@ void Render() // render first cube D3D10_TECHNIQUE_DESC techDesc; g_pTechniqueRender->GetDesc(&techDesc); + + int indices_length = ROOT_MESH_NODE.mesh->indices_size / (sizeof (DWORD)); for (UINT p = 0; p < techDesc.Passes; p++) { g_pTechniqueRender->GetPassByIndex(p)->Apply(0); - g_pd3dDevice->DrawIndexed(accessor_0_length, 0, 0); + g_pd3dDevice->DrawIndexed(indices_length, 0, 0); } // render the lights diff --git a/rigged_simple.hpp b/rigged_simple.hpp new file mode 100644 index 0000000..1d87385 --- /dev/null +++ b/rigged_simple.hpp @@ -0,0 +1,1581 @@ +const DWORD accessor_0[] = { + 0, + 1, + 2, + 1, + 3, + 4, + 3, + 5, + 6, + 5, + 7, + 8, + 7, + 9, + 10, + 9, + 11, + 12, + 11, + 13, + 14, + 13, + 15, + 16, + 15, + 17, + 18, + 17, + 19, + 20, + 19, + 21, + 22, + 21, + 23, + 24, + 23, + 25, + 26, + 25, + 27, + 28, + 27, + 29, + 30, + 29, + 31, + 32, + 31, + 33, + 34, + 33, + 35, + 36, + 35, + 37, + 38, + 37, + 39, + 40, + 39, + 41, + 42, + 41, + 43, + 44, + 43, + 45, + 46, + 45, + 47, + 48, + 48, + 47, + 49, + 50, + 49, + 51, + 52, + 51, + 53, + 53, + 54, + 55, + 54, + 56, + 57, + 56, + 58, + 59, + 60, + 61, + 62, + 63, + 0, + 64, + 58, + 63, + 65, + 66, + 67, + 68, + 59, + 65, + 69, + 65, + 64, + 70, + 57, + 59, + 71, + 55, + 57, + 72, + 73, + 55, + 74, + 52, + 73, + 75, + 50, + 52, + 76, + 48, + 50, + 77, + 46, + 48, + 78, + 44, + 46, + 79, + 42, + 44, + 80, + 40, + 42, + 81, + 38, + 40, + 82, + 36, + 38, + 83, + 34, + 36, + 84, + 32, + 34, + 85, + 30, + 32, + 86, + 28, + 30, + 87, + 26, + 28, + 88, + 24, + 26, + 89, + 22, + 24, + 90, + 20, + 22, + 91, + 18, + 20, + 92, + 16, + 18, + 93, + 14, + 16, + 94, + 12, + 14, + 95, + 10, + 12, + 96, + 8, + 10, + 97, + 6, + 8, + 98, + 4, + 6, + 99, + 2, + 4, + 100, + 64, + 2, + 101, + 64, + 0, + 2, + 2, + 1, + 4, + 4, + 3, + 6, + 6, + 5, + 8, + 8, + 7, + 10, + 10, + 9, + 12, + 12, + 11, + 14, + 14, + 13, + 16, + 16, + 15, + 18, + 18, + 17, + 20, + 20, + 19, + 22, + 22, + 21, + 24, + 24, + 23, + 26, + 26, + 25, + 28, + 28, + 27, + 30, + 30, + 29, + 32, + 32, + 31, + 34, + 34, + 33, + 36, + 36, + 35, + 38, + 38, + 37, + 40, + 40, + 39, + 42, + 42, + 41, + 44, + 44, + 43, + 46, + 46, + 45, + 48, + 50, + 48, + 49, + 52, + 50, + 51, + 73, + 52, + 53, + 73, + 53, + 55, + 55, + 54, + 57, + 57, + 56, + 59, + 102, + 103, + 104, + 104, + 105, + 102, + 106, + 107, + 108, + 108, + 109, + 62, + 62, + 110, + 111, + 111, + 112, + 62, + 113, + 114, + 115, + 115, + 116, + 60, + 60, + 117, + 118, + 118, + 119, + 120, + 120, + 121, + 122, + 122, + 123, + 61, + 61, + 124, + 125, + 125, + 126, + 61, + 127, + 128, + 129, + 129, + 130, + 102, + 102, + 105, + 106, + 106, + 108, + 62, + 62, + 112, + 113, + 113, + 115, + 60, + 60, + 118, + 61, + 120, + 122, + 61, + 61, + 126, + 127, + 127, + 129, + 102, + 102, + 106, + 62, + 62, + 113, + 60, + 118, + 120, + 61, + 61, + 127, + 102, + 102, + 62, + 61, + 65, + 63, + 64, + 59, + 58, + 65, + 131, + 132, + 133, + 133, + 134, + 135, + 135, + 136, + 137, + 137, + 138, + 68, + 68, + 139, + 140, + 140, + 141, + 68, + 142, + 143, + 66, + 144, + 145, + 66, + 66, + 146, + 147, + 148, + 149, + 147, + 147, + 150, + 151, + 151, + 152, + 67, + 67, + 153, + 154, + 154, + 155, + 67, + 156, + 157, + 158, + 158, + 159, + 131, + 131, + 133, + 68, + 135, + 137, + 68, + 68, + 141, + 142, + 143, + 144, + 66, + 146, + 148, + 147, + 147, + 151, + 67, + 67, + 155, + 156, + 156, + 158, + 67, + 133, + 135, + 68, + 68, + 142, + 66, + 66, + 147, + 67, + 67, + 158, + 131, + 131, + 68, + 67, + 71, + 59, + 69, + 69, + 65, + 70, + 72, + 57, + 71, + 74, + 55, + 72, + 75, + 73, + 74, + 76, + 52, + 75, + 77, + 50, + 76, + 78, + 48, + 77, + 79, + 46, + 78, + 80, + 44, + 79, + 81, + 42, + 80, + 82, + 40, + 81, + 83, + 38, + 82, + 84, + 36, + 83, + 85, + 34, + 84, + 86, + 32, + 85, + 87, + 30, + 86, + 88, + 28, + 87, + 89, + 26, + 88, + 90, + 24, + 89, + 91, + 22, + 90, + 92, + 20, + 91, + 93, + 18, + 92, + 94, + 16, + 93, + 95, + 14, + 94, + 96, + 12, + 95, + 97, + 10, + 96, + 98, + 8, + 97, + 99, + 6, + 98, + 100, + 4, + 99, + 101, + 2, + 100, + 70, + 64, + 101, +}; + +const int accessor_0_length = (sizeof (accessor_0)) / (sizeof (accessor_0[0])); + +const D3DXVECTOR4 accessor_1[] = { + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), +}; + +const int accessor_1_length = (sizeof (accessor_1)) / (sizeof (accessor_1[0])); + +const D3DXVECTOR3 accessor_2[] = { + D3DXVECTOR3( 0.0000005f, -0.9938294f, 0.1109191f), + D3DXVECTOR3( 0.1938866f, -0.9747333f, 0.1109191f), + D3DXVECTOR3( 0.1947389f, -0.9790167f, 0.0600256f), + D3DXVECTOR3( 0.3803219f, -0.9181787f, 0.1109191f), + D3DXVECTOR3( 0.3819937f, -0.9222136f, 0.0600256f), + D3DXVECTOR3( 0.5521420f, -0.8263391f, 0.1109191f), + D3DXVECTOR3( 0.5545684f, -0.8299704f, 0.0600256f), + D3DXVECTOR3( 0.7027436f, -0.7027435f, 0.1109192f), + D3DXVECTOR3( 0.7058315f, -0.7058320f, 0.0600256f), + D3DXVECTOR3( 0.8263392f, -0.5521417f, 0.1109192f), + D3DXVECTOR3( 0.8299701f, -0.5545689f, 0.0600256f), + D3DXVECTOR3( 0.9181789f, -0.3803218f, 0.1109192f), + D3DXVECTOR3( 0.9222137f, -0.3819932f, 0.0600256f), + D3DXVECTOR3( 0.9747333f, -0.1938864f, 0.1109192f), + D3DXVECTOR3( 0.9790168f, -0.1947386f, 0.0600256f), + D3DXVECTOR3( 0.9938294f, -0.0000002f, 0.1109192f), + D3DXVECTOR3( 0.9981969f, 0.0000000f, 0.0600257f), + D3DXVECTOR3( 0.9747334f, 0.1938861f, 0.1109192f), + D3DXVECTOR3( 0.9790168f, 0.1947387f, 0.0600257f), + D3DXVECTOR3( 0.9181789f, 0.3803218f, 0.1109192f), + D3DXVECTOR3( 0.9222138f, 0.3819931f, 0.0600257f), + D3DXVECTOR3( 0.8263391f, 0.5521419f, 0.1109193f), + D3DXVECTOR3( 0.8299704f, 0.5545686f, 0.0600257f), + D3DXVECTOR3( 0.7027436f, 0.7027434f, 0.1109194f), + D3DXVECTOR3( 0.7058315f, 0.7058320f, 0.0600257f), + D3DXVECTOR3( 0.5521422f, 0.8263389f, 0.1109194f), + D3DXVECTOR3( 0.5545687f, 0.8299701f, 0.0600257f), + D3DXVECTOR3( 0.3803217f, 0.9181789f, 0.1109194f), + D3DXVECTOR3( 0.3819934f, 0.9222136f, 0.0600257f), + D3DXVECTOR3( 0.1938850f, 0.9747336f, 0.1109194f), + D3DXVECTOR3( 0.1947384f, 0.9790168f, 0.0600258f), + D3DXVECTOR3(-0.0000003f, 0.9938295f, 0.1109193f), + D3DXVECTOR3( 0.0000003f, 0.9981968f, 0.0600257f), + D3DXVECTOR3(-0.1938858f, 0.9747335f, 0.1109194f), + D3DXVECTOR3(-0.1947395f, 0.9790167f, 0.0600257f), + D3DXVECTOR3(-0.3803224f, 0.9181786f, 0.1109194f), + D3DXVECTOR3(-0.3819943f, 0.9222133f, 0.0600257f), + D3DXVECTOR3(-0.5521423f, 0.8263389f, 0.1109194f), + D3DXVECTOR3(-0.5545687f, 0.8299702f, 0.0600257f), + D3DXVECTOR3(-0.7027437f, 0.7027433f, 0.1109193f), + D3DXVECTOR3(-0.7058324f, 0.7058311f, 0.0600258f), + D3DXVECTOR3(-0.8263394f, 0.5521415f, 0.1109193f), + D3DXVECTOR3(-0.8299710f, 0.5545675f, 0.0600257f), + D3DXVECTOR3(-0.9181791f, 0.3803210f, 0.1109193f), + D3DXVECTOR3(-0.9222137f, 0.3819931f, 0.0600257f), + D3DXVECTOR3(-0.9747336f, 0.1938852f, 0.1109192f), + D3DXVECTOR3(-0.9790169f, 0.1947383f, 0.0600257f), + D3DXVECTOR3(-0.9938294f, -0.0000011f, 0.1109192f), + D3DXVECTOR3(-0.9981969f, -0.0000009f, 0.0600257f), + D3DXVECTOR3(-0.9747331f, -0.1938876f, 0.1109192f), + D3DXVECTOR3(-0.9790167f, -0.1947395f, 0.0600256f), + D3DXVECTOR3(-0.9181783f, -0.3803234f, 0.1109192f), + D3DXVECTOR3(-0.9222134f, -0.3819942f, 0.0600256f), + D3DXVECTOR3(-0.8263384f, -0.5521429f, 0.1109192f), + D3DXVECTOR3(-0.7027428f, -0.7027444f, 0.1109192f), + D3DXVECTOR3(-0.7058306f, -0.7058328f, 0.0600256f), + D3DXVECTOR3(-0.5521408f, -0.8263399f, 0.1109192f), + D3DXVECTOR3(-0.5545669f, -0.8299714f, 0.0600256f), + D3DXVECTOR3(-0.3803205f, -0.9181793f, 0.1109191f), + D3DXVECTOR3(-0.3819924f, -0.9222141f, 0.0600256f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000005f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.0000002f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.1938853f, -0.9747336f, 0.1109191f), + D3DXVECTOR3( 0.0000006f, -0.9981968f, 0.0600256f), + D3DXVECTOR3(-0.1947377f, -0.9790170f, 0.0600256f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000016f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.1950820f, -0.9807493f, 0.0085909f), + D3DXVECTOR3( 0.0000007f, -0.9999632f, 0.0085909f), + D3DXVECTOR3(-0.3826677f, -0.9238463f, 0.0085909f), + D3DXVECTOR3(-0.5555484f, -0.8314399f, 0.0085909f), + D3DXVECTOR3(-0.8299701f, -0.5545690f, 0.0600256f), + D3DXVECTOR3(-0.7070795f, -0.7070819f, 0.0085909f), + D3DXVECTOR3(-0.8314383f, -0.5555508f, 0.0085909f), + D3DXVECTOR3(-0.9238448f, -0.3826708f, 0.0085909f), + D3DXVECTOR3(-0.9807488f, -0.1950847f, 0.0085909f), + D3DXVECTOR3(-0.9999632f, 0.0000000f, 0.0085910f), + D3DXVECTOR3(-0.9807494f, 0.1950817f, 0.0085910f), + D3DXVECTOR3(-0.9238458f, 0.3826684f, 0.0085910f), + D3DXVECTOR3(-0.8314393f, 0.5555494f, 0.0085910f), + D3DXVECTOR3(-0.7070813f, 0.7070801f, 0.0085910f), + D3DXVECTOR3(-0.5555496f, 0.8314391f, 0.0085911f), + D3DXVECTOR3(-0.3826699f, 0.9238452f, 0.0085911f), + D3DXVECTOR3(-0.1950834f, 0.9807491f, 0.0085911f), + D3DXVECTOR3( 0.0000000f, 0.9999632f, 0.0085911f), + D3DXVECTOR3( 0.1950830f, 0.9807492f, 0.0085911f), + D3DXVECTOR3( 0.3826691f, 0.9238455f, 0.0085911f), + D3DXVECTOR3( 0.5555490f, 0.8314396f, 0.0085910f), + D3DXVECTOR3( 0.7070804f, 0.7070810f, 0.0085910f), + D3DXVECTOR3( 0.8314391f, 0.5555496f, 0.0085910f), + D3DXVECTOR3( 0.9238455f, 0.3826695f, 0.0085910f), + D3DXVECTOR3( 0.9807491f, 0.1950834f, 0.0085910f), + D3DXVECTOR3( 0.9999632f, 0.0000006f, 0.0085909f), + D3DXVECTOR3( 0.9807492f, -0.1950829f, 0.0085909f), + D3DXVECTOR3( 0.9238454f, -0.3826697f, 0.0085909f), + D3DXVECTOR3( 0.8314392f, -0.5555496f, 0.0085909f), + D3DXVECTOR3( 0.7070811f, -0.7070803f, 0.0085909f), + D3DXVECTOR3( 0.5555495f, -0.8314391f, 0.0085909f), + D3DXVECTOR3( 0.3826688f, -0.9238457f, 0.0085909f), + D3DXVECTOR3( 0.1950835f, -0.9807491f, 0.0085909f), + D3DXVECTOR3( 0.0000004f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.0000020f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000025f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000002f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000009f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.0000005f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.0000159f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.0000051f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000013f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.0000159f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.0000060f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000080f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.0000060f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000010f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.0000005f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, -1.0000000f), + D3DXVECTOR3(-0.0000071f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000159f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000159f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000005f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000051f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000004f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000159f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000043f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, -1.0000000f), + D3DXVECTOR3( 0.0000001f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000016f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000196f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000068f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000392f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000525f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000217f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000036f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000126f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000003f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000098f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000006f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000392f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000081f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000392f, 0.0000000f, 1.0000000f), + D3DXVECTOR3(-0.0000013f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000126f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000027f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000392f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000005f, 0.0000000f, 1.0000000f), + D3DXVECTOR3( 0.0000000f, 0.0000000f, 1.0000000f), +}; + +const int accessor_2_length = (sizeof (accessor_2)) / (sizeof (accessor_2[0])); + +const D3DXVECTOR3 accessor_3[] = { + D3DXVECTOR3( 0.0000000f, -0.9999996f, -4.5750771f), + D3DXVECTOR3( 0.1950903f, -0.9807848f, -4.5750771f), + D3DXVECTOR3( 0.0954743f, -0.4799818f, 0.0000000f), + D3DXVECTOR3( 0.3826835f, -0.9238791f, -4.5750771f), + D3DXVECTOR3( 0.1872796f, -0.4521329f, 0.0000000f), + D3DXVECTOR3( 0.5555703f, -0.8314692f, -4.5750771f), + D3DXVECTOR3( 0.2718878f, -0.4069089f, 0.0000000f), + D3DXVECTOR3( 0.7071068f, -0.7071064f, -4.5750771f), + D3DXVECTOR3( 0.3460475f, -0.3460476f, 0.0000000f), + D3DXVECTOR3( 0.8314697f, -0.5555698f, -4.5750771f), + D3DXVECTOR3( 0.4069089f, -0.2718879f, 0.0000000f), + D3DXVECTOR3( 0.9238795f, -0.3826830f, -4.5750771f), + D3DXVECTOR3( 0.4521329f, -0.1872797f, 0.0000000f), + D3DXVECTOR3( 0.9807853f, -0.1950899f, -4.5750771f), + D3DXVECTOR3( 0.4799817f, -0.0954744f, 0.0000000f), + D3DXVECTOR3( 1.0000000f, 0.0000003f, -4.5750771f), + D3DXVECTOR3( 0.4893851f, -0.0000002f, 0.0000000f), + D3DXVECTOR3( 0.9807853f, 0.1950906f, -4.5750771f), + D3DXVECTOR3( 0.4799817f, 0.0954741f, 0.0000000f), + D3DXVECTOR3( 0.9238796f, 0.3826836f, -4.5750771f), + D3DXVECTOR3( 0.4521329f, 0.1872793f, 0.0000000f), + D3DXVECTOR3( 0.8314697f, 0.5555706f, -4.5750771f), + D3DXVECTOR3( 0.4069089f, 0.2718876f, 0.0000000f), + D3DXVECTOR3( 0.7071068f, 0.7071072f, -4.5750771f), + D3DXVECTOR3( 0.3460475f, 0.3460473f, 0.0000000f), + D3DXVECTOR3( 0.5555702f, 0.8314701f, -4.5750771f), + D3DXVECTOR3( 0.2718878f, 0.4069086f, 0.0000000f), + D3DXVECTOR3( 0.3826833f, 0.9238801f, -4.5750771f), + D3DXVECTOR3( 0.1872795f, 0.4521327f, 0.0000000f), + D3DXVECTOR3( 0.1950901f, 0.9807857f, -4.5750771f), + D3DXVECTOR3( 0.0954742f, 0.4799815f, 0.0000000f), + D3DXVECTOR3(-0.0000003f, 1.0000000f, -4.5750771f), + D3DXVECTOR3( 0.0000000f, 0.4893849f, 0.0000000f), + D3DXVECTOR3(-0.1950907f, 0.9807856f, -4.5750771f), + D3DXVECTOR3(-0.0954744f, 0.4799815f, 0.0000000f), + D3DXVECTOR3(-0.3826839f, 0.9238798f, -4.5750771f), + D3DXVECTOR3(-0.1872797f, 0.4521325f, 0.0000000f), + D3DXVECTOR3(-0.5555707f, 0.8314697f, -4.5750771f), + D3DXVECTOR3(-0.2718879f, 0.4069085f, 0.0000000f), + D3DXVECTOR3(-0.7071073f, 0.7071068f, -4.5750771f), + D3DXVECTOR3(-0.3460476f, 0.3460471f, 0.0000000f), + D3DXVECTOR3(-0.8314700f, 0.5555701f, -4.5750771f), + D3DXVECTOR3(-0.4069089f, 0.2718873f, 0.0000000f), + D3DXVECTOR3(-0.9238799f, 0.3826830f, -4.5750771f), + D3DXVECTOR3(-0.4521329f, 0.1872790f, 0.0000000f), + D3DXVECTOR3(-0.9807854f, 0.1950898f, -4.5750771f), + D3DXVECTOR3(-0.4799817f, 0.0954737f, 0.0000000f), + D3DXVECTOR3(-1.0000000f, -0.0000006f, -4.5750771f), + D3DXVECTOR3(-0.4893850f, -0.0000006f, 0.0000000f), + D3DXVECTOR3(-0.9807851f, -0.1950909f, -4.5750771f), + D3DXVECTOR3(-0.4799815f, -0.0954749f, 0.0000000f), + D3DXVECTOR3(-0.9238791f, -0.3826841f, -4.5750771f), + D3DXVECTOR3(-0.4521325f, -0.1872802f, 0.0000000f), + D3DXVECTOR3(-0.8314689f, -0.5555709f, -4.5750771f), + D3DXVECTOR3(-0.7071059f, -0.7071073f, -4.5750771f), + D3DXVECTOR3(-0.3460470f, -0.3460481f, 0.0000000f), + D3DXVECTOR3(-0.5555691f, -0.8314700f, -4.5750771f), + D3DXVECTOR3(-0.2718871f, -0.4069093f, 0.0000000f), + D3DXVECTOR3(-0.3826821f, -0.9238797f, -4.5750771f), + D3DXVECTOR3(-0.1872788f, -0.4521332f, 0.0000000f), + D3DXVECTOR3(-0.3826839f, 0.9238798f, -4.5750771f), + D3DXVECTOR3( 0.9238796f, 0.3826836f, -4.5750771f), + D3DXVECTOR3(-0.9238791f, -0.3826841f, -4.5750771f), + D3DXVECTOR3(-0.1950888f, -0.9807851f, -4.5750771f), + D3DXVECTOR3( 0.0000000f, -0.4893852f, 0.0000000f), + D3DXVECTOR3(-0.0954735f, -0.4799820f, 0.0000000f), + D3DXVECTOR3( 0.0878060f, 0.4414305f, 4.5750771f), + D3DXVECTOR3(-0.4414310f, 0.0878052f, 4.5750771f), + D3DXVECTOR3( 0.4414311f, -0.0878066f, 4.5750771f), + D3DXVECTOR3(-0.0878053f, -0.4414317f, 4.5750771f), + D3DXVECTOR3( 0.0000000f, -0.4500797f, 4.5750771f), + D3DXVECTOR3(-0.1722372f, -0.4158197f, 4.5750771f), + D3DXVECTOR3(-0.2500500f, -0.3742281f, 4.5750771f), + D3DXVECTOR3(-0.4069084f, -0.2718884f, 0.0000000f), + D3DXVECTOR3(-0.3182535f, -0.3182550f, 4.5750771f), + D3DXVECTOR3(-0.3742268f, -0.2500516f, 4.5750771f), + D3DXVECTOR3(-0.4158186f, -0.1722388f, 4.5750771f), + D3DXVECTOR3(-0.4414309f, -0.0878071f, 4.5750771f), + D3DXVECTOR3(-0.4500791f, -0.0000010f, 4.5750771f), + D3DXVECTOR3(-0.4414310f, 0.0878052f, 4.5750771f), + D3DXVECTOR3(-0.4158191f, 0.1722369f, 4.5750771f), + D3DXVECTOR3(-0.3742272f, 0.2500498f, 4.5750771f), + D3DXVECTOR3(-0.3182542f, 0.3182533f, 4.5750771f), + D3DXVECTOR3(-0.2500507f, 0.3742265f, 4.5750771f), + D3DXVECTOR3(-0.1722379f, 0.4158183f, 4.5750771f), + D3DXVECTOR3(-0.0878062f, 0.4414305f, 4.5750771f), + D3DXVECTOR3( 0.0000000f, 0.4500786f, 4.5750771f), + D3DXVECTOR3( 0.0878060f, 0.4414305f, 4.5750771f), + D3DXVECTOR3( 0.1722378f, 0.4158184f, 4.5750771f), + D3DXVECTOR3( 0.2500506f, 0.3742266f, 4.5750771f), + D3DXVECTOR3( 0.3182541f, 0.3182535f, 4.5750771f), + D3DXVECTOR3( 0.3742272f, 0.2500500f, 4.5750771f), + D3DXVECTOR3( 0.4158190f, 0.1722372f, 4.5750771f), + D3DXVECTOR3( 0.4414311f, 0.0878054f, 4.5750771f), + D3DXVECTOR3( 0.4500792f, -0.0000006f, 4.5750771f), + D3DXVECTOR3( 0.4414311f, -0.0878066f, 4.5750771f), + D3DXVECTOR3( 0.4158190f, -0.1722384f, 4.5750771f), + D3DXVECTOR3( 0.3742272f, -0.2500511f, 4.5750771f), + D3DXVECTOR3( 0.3182541f, -0.3182546f, 4.5750771f), + D3DXVECTOR3( 0.2500507f, -0.3742277f, 4.5750771f), + D3DXVECTOR3( 0.1722379f, -0.4158194f, 4.5750771f), + D3DXVECTOR3( 0.0878062f, -0.4414315f, 4.5750771f), + D3DXVECTOR3( 0.3826835f, -0.9238791f, -4.5750771f), + D3DXVECTOR3( 0.1950903f, -0.9807848f, -4.5750771f), + D3DXVECTOR3( 0.0000000f, -0.9999996f, -4.5750771f), + D3DXVECTOR3(-0.1950888f, -0.9807851f, -4.5750771f), + D3DXVECTOR3(-0.3826821f, -0.9238797f, -4.5750771f), + D3DXVECTOR3(-0.5555691f, -0.8314700f, -4.5750771f), + D3DXVECTOR3(-0.7071059f, -0.7071073f, -4.5750771f), + D3DXVECTOR3(-0.8314689f, -0.5555709f, -4.5750771f), + D3DXVECTOR3(-0.9807851f, -0.1950909f, -4.5750771f), + D3DXVECTOR3(-1.0000000f, -0.0000006f, -4.5750771f), + D3DXVECTOR3(-0.9807854f, 0.1950898f, -4.5750771f), + D3DXVECTOR3(-0.9238799f, 0.3826830f, -4.5750771f), + D3DXVECTOR3(-0.8314700f, 0.5555701f, -4.5750771f), + D3DXVECTOR3(-0.7071073f, 0.7071068f, -4.5750771f), + D3DXVECTOR3(-0.5555707f, 0.8314697f, -4.5750771f), + D3DXVECTOR3(-0.1950907f, 0.9807856f, -4.5750771f), + D3DXVECTOR3(-0.0000003f, 1.0000000f, -4.5750771f), + D3DXVECTOR3( 0.1950901f, 0.9807857f, -4.5750771f), + D3DXVECTOR3( 0.3826833f, 0.9238801f, -4.5750771f), + D3DXVECTOR3( 0.5555702f, 0.8314701f, -4.5750771f), + D3DXVECTOR3( 0.7071068f, 0.7071072f, -4.5750771f), + D3DXVECTOR3( 0.8314697f, 0.5555706f, -4.5750771f), + D3DXVECTOR3( 0.9807853f, 0.1950906f, -4.5750771f), + D3DXVECTOR3( 1.0000000f, 0.0000003f, -4.5750771f), + D3DXVECTOR3( 0.9807853f, -0.1950899f, -4.5750771f), + D3DXVECTOR3( 0.9238795f, -0.3826830f, -4.5750771f), + D3DXVECTOR3( 0.8314697f, -0.5555698f, -4.5750771f), + D3DXVECTOR3( 0.7071068f, -0.7071064f, -4.5750771f), + D3DXVECTOR3( 0.5555703f, -0.8314692f, -4.5750771f), + D3DXVECTOR3(-0.0878053f, -0.4414317f, 4.5750771f), + D3DXVECTOR3( 0.0000000f, -0.4500797f, 4.5750771f), + D3DXVECTOR3( 0.0878062f, -0.4414315f, 4.5750771f), + D3DXVECTOR3( 0.1722379f, -0.4158194f, 4.5750771f), + D3DXVECTOR3( 0.2500507f, -0.3742277f, 4.5750771f), + D3DXVECTOR3( 0.3182541f, -0.3182546f, 4.5750771f), + D3DXVECTOR3( 0.3742272f, -0.2500511f, 4.5750771f), + D3DXVECTOR3( 0.4158190f, -0.1722384f, 4.5750771f), + D3DXVECTOR3( 0.4500792f, -0.0000006f, 4.5750771f), + D3DXVECTOR3( 0.4414311f, 0.0878054f, 4.5750771f), + D3DXVECTOR3( 0.4158190f, 0.1722372f, 4.5750771f), + D3DXVECTOR3( 0.3742272f, 0.2500500f, 4.5750771f), + D3DXVECTOR3( 0.3182541f, 0.3182535f, 4.5750771f), + D3DXVECTOR3( 0.2500506f, 0.3742266f, 4.5750771f), + D3DXVECTOR3( 0.1722378f, 0.4158184f, 4.5750771f), + D3DXVECTOR3( 0.0000000f, 0.4500786f, 4.5750771f), + D3DXVECTOR3(-0.2500507f, 0.3742265f, 4.5750771f), + D3DXVECTOR3(-0.0878062f, 0.4414305f, 4.5750771f), + D3DXVECTOR3(-0.1722379f, 0.4158183f, 4.5750771f), + D3DXVECTOR3(-0.3182542f, 0.3182533f, 4.5750771f), + D3DXVECTOR3(-0.3742272f, 0.2500498f, 4.5750771f), + D3DXVECTOR3(-0.4158191f, 0.1722369f, 4.5750771f), + D3DXVECTOR3(-0.4500791f, -0.0000010f, 4.5750771f), + D3DXVECTOR3(-0.4414309f, -0.0878071f, 4.5750771f), + D3DXVECTOR3(-0.4158186f, -0.1722388f, 4.5750771f), + D3DXVECTOR3(-0.3742268f, -0.2500516f, 4.5750771f), + D3DXVECTOR3(-0.3182535f, -0.3182550f, 4.5750771f), + D3DXVECTOR3(-0.2500500f, -0.3742281f, 4.5750771f), + D3DXVECTOR3(-0.1722372f, -0.4158197f, 4.5750771f), +}; + +const int accessor_3_length = (sizeof (accessor_3)) / (sizeof (accessor_3[0])); + +const D3DXVECTOR4 accessor_4[] = { + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386019f, 0.2613981f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386019f, 0.2613981f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386019f, 0.2613981f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386019f, 0.2613981f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386019f, 0.2613981f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386018f, 0.2613982f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386019f, 0.2613981f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 0.7386019f, 0.2613981f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), + D3DXVECTOR4( 1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f), +}; + +const int accessor_4_length = (sizeof (accessor_4)) / (sizeof (accessor_4[0])); + +const float accessor_5[] = { + 0.04166661947965622, + 0.08333330601453781, + 0.125, + 0.16666659712791443, + 0.20833329856395721, + 0.25, + 0.29166659712791443, + 0.3333333134651184, + 0.3750000298023224, + 0.41666659712791443, + 0.4583333134651184, + 0.5, + 0.5416666865348816, + 0.5833333134651184, + 0.625, + 0.6666666865348816, + 0.7083333134651184, + 0.75, + 0.7916666865348816, + 0.8333333134651184, + 0.8750000596046448, + 0.9166666865348816, + 0.9583333134651184, + 1.0, + 1.0416669845581055, + 1.0833330154418945, + 1.125, + 1.1666669845581055, + 1.2083330154418945, + 1.25, + 1.2916669845581055, + 1.3333330154418945, + 1.3750001192092896, + 1.4166669845581055, + 1.4583330154418945, + 1.5, + 1.5416669845581055, + 1.5833330154418945, + 1.6250001192092896, + 1.6666669845581055, + 1.7083330154418945, + 1.75, + 1.7916669845581055, + 1.8333330154418945, + 1.8750001192092896, + 1.9166669845581055, + 1.9583330154418945, + 2.0, + 2.0416669845581055, + 2.0833330154418945, +}; + +const int accessor_5_length = (sizeof (accessor_5)) / (sizeof (accessor_5[0])); + +const D3DXVECTOR3 accessor_6[] = { + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), + D3DXVECTOR3(-0.0000000f, 0.0279775f, 4.1870770f), +}; + +const int accessor_6_length = (sizeof (accessor_6)) / (sizeof (accessor_6[0])); + +const D3DXVECTOR4 accessor_7[] = { + D3DXVECTOR4(-0.0000000f, 0.0002899f, 0.0000000f, -0.9999999f), + D3DXVECTOR4( 0.0123278f, 0.0002899f, -0.0000036f, -0.9999240f), + D3DXVECTOR4( 0.0246959f, 0.0002898f, -0.0000072f, -0.9996950f), + D3DXVECTOR4( 0.0370989f, 0.0002897f, -0.0000108f, -0.9993116f), + D3DXVECTOR4( 0.0495311f, 0.0002896f, -0.0000144f, -0.9987726f), + D3DXVECTOR4( 0.0619868f, 0.0002894f, -0.0000180f, -0.9980769f), + D3DXVECTOR4( 0.0744603f, 0.0002891f, -0.0000216f, -0.9972240f), + D3DXVECTOR4( 0.0869457f, 0.0002888f, -0.0000252f, -0.9962130f), + D3DXVECTOR4( 0.0994372f, 0.0002885f, -0.0000288f, -0.9950438f), + D3DXVECTOR4( 0.1119287f, 0.0002881f, -0.0000325f, -0.9937162f), + D3DXVECTOR4( 0.1244145f, 0.0002877f, -0.0000361f, -0.9922303f), + D3DXVECTOR4( 0.1368884f, 0.0002872f, -0.0000397f, -0.9905865f), + D3DXVECTOR4( 0.1493447f, 0.0002867f, -0.0000433f, -0.9887851f), + D3DXVECTOR4( 0.1617772f, 0.0002861f, -0.0000469f, -0.9868273f), + D3DXVECTOR4( 0.1741802f, 0.0002855f, -0.0000505f, -0.9847137f), + D3DXVECTOR4( 0.1865479f, 0.0002848f, -0.0000541f, -0.9824458f), + D3DXVECTOR4( 0.1988743f, 0.0002841f, -0.0000577f, -0.9800249f), + D3DXVECTOR4( 0.2111539f, 0.0002834f, -0.0000612f, -0.9774528f), + D3DXVECTOR4( 0.2233810f, 0.0002826f, -0.0000648f, -0.9747311f), + D3DXVECTOR4( 0.2355499f, 0.0002818f, -0.0000683f, -0.9718622f), + D3DXVECTOR4( 0.2476555f, 0.0002809f, -0.0000718f, -0.9688481f), + D3DXVECTOR4( 0.2596923f, 0.0002800f, -0.0000753f, -0.9656914f), + D3DXVECTOR4( 0.2716552f, 0.0002790f, -0.0000788f, -0.9623946f), + D3DXVECTOR4( 0.2835392f, 0.0002780f, -0.0000822f, -0.9589606f), + D3DXVECTOR4( 0.2953396f, 0.0002770f, -0.0000856f, -0.9553922f), + D3DXVECTOR4( 0.2840131f, 0.0002780f, -0.0000823f, -0.9588203f), + D3DXVECTOR4( 0.2726091f, 0.0002789f, -0.0000790f, -0.9621248f), + D3DXVECTOR4( 0.2611320f, 0.0002799f, -0.0000757f, -0.9653031f), + D3DXVECTOR4( 0.2495863f, 0.0002807f, -0.0000724f, -0.9683525f), + D3DXVECTOR4( 0.2379764f, 0.0002816f, -0.0000690f, -0.9712709f), + D3DXVECTOR4( 0.2263070f, 0.0002824f, -0.0000656f, -0.9740559f), + D3DXVECTOR4( 0.2145831f, 0.0002832f, -0.0000622f, -0.9767057f), + D3DXVECTOR4( 0.2028092f, 0.0002839f, -0.0000588f, -0.9792182f), + D3DXVECTOR4( 0.1909906f, 0.0002846f, -0.0000554f, -0.9815918f), + D3DXVECTOR4( 0.1791320f, 0.0002852f, -0.0000519f, -0.9838250f), + D3DXVECTOR4( 0.1672386f, 0.0002858f, -0.0000485f, -0.9859164f), + D3DXVECTOR4( 0.1553157f, 0.0002864f, -0.0000450f, -0.9878649f), + D3DXVECTOR4( 0.1433683f, 0.0002869f, -0.0000416f, -0.9896694f), + D3DXVECTOR4( 0.1314018f, 0.0002874f, -0.0000381f, -0.9913291f), + D3DXVECTOR4( 0.1194213f, 0.0002878f, -0.0000346f, -0.9928436f), + D3DXVECTOR4( 0.1074321f, 0.0002882f, -0.0000311f, -0.9942124f), + D3DXVECTOR4( 0.0954396f, 0.0002886f, -0.0000277f, -0.9954352f), + D3DXVECTOR4( 0.0834489f, 0.0002889f, -0.0000242f, -0.9965121f), + D3DXVECTOR4( 0.0714653f, 0.0002892f, -0.0000207f, -0.9974431f), + D3DXVECTOR4( 0.0594940f, 0.0002894f, -0.0000172f, -0.9982287f), + D3DXVECTOR4( 0.0475402f, 0.0002896f, -0.0000138f, -0.9988693f), + D3DXVECTOR4( 0.0356088f, 0.0002897f, -0.0000103f, -0.9993657f), + D3DXVECTOR4( 0.0237051f, 0.0002898f, -0.0000069f, -0.9997190f), + D3DXVECTOR4( 0.0118338f, 0.0002899f, -0.0000034f, -0.9999300f), + D3DXVECTOR4(-0.0000000f, 0.0002899f, 0.0000000f, -0.9999999f), +}; + +const int accessor_7_length = (sizeof (accessor_7)) / (sizeof (accessor_7[0])); + +const D3DXVECTOR3 accessor_8[] = { + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 1.0000000f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 1.0000000f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 0.9999999f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 0.9999999f), + D3DXVECTOR3( 1.0000001f, 1.0000000f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 0.9999999f), + D3DXVECTOR3( 1.0000001f, 0.9999998f, 0.9999999f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 0.9999999f, 1.0000000f, 0.9999998f), + D3DXVECTOR3( 0.9999999f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 0.9999999f, 0.9999999f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 0.9999999f, 0.9999998f), + D3DXVECTOR3( 1.0000000f, 0.9999999f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 0.9999999f, 0.9999999f), + D3DXVECTOR3( 0.9999999f, 1.0000001f, 0.9999999f), + D3DXVECTOR3( 0.9999999f, 1.0000000f, 1.0000000f), + D3DXVECTOR3( 0.9999999f, 1.0000000f, 0.9999998f), + D3DXVECTOR3( 1.0000000f, 0.9999999f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 0.9999999f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999998f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000000f, 1.0000000f, 0.9999999f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999998f, 0.9999999f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 1.0000000f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 1.0000000f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999998f, 0.9999999f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 0.9999999f), + D3DXVECTOR3( 1.0000001f, 0.9999999f, 1.0000000f), +}; + +const int accessor_8_length = (sizeof (accessor_8)) / (sizeof (accessor_8[0])); + +const D3DXMATRIX accessor_9[] = { + D3DXMATRIX( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f, + -1.0000000f, 0.0000000f, 0.0000000f, 0.0000000f, + 0.0000000f, 0.0000000f, 1.0000000f, 0.0000000f, + 0.0000000f, 0.0000001f, 4.1803298f, 1.0000000f), + D3DXMATRIX( 0.0000000f, 1.0000000f, 0.0000000f, 0.0000000f, + -0.9999998f, 0.0000000f, 0.0005798f, 0.0000000f, + 0.0005798f, 0.0000000f, 0.9999998f, 0.0000000f, + -0.0000039f, -0.0279773f, -0.0067467f, 1.0000000f), +}; + +const int accessor_9_length = (sizeof (accessor_9)) / (sizeof (accessor_9[0])); + +const Mesh mesh_0 = { + accessor_3, // position + (sizeof (accessor_3)), + accessor_2, // normal + (sizeof (accessor_2)), + NULL, // texcoord_0 + 0, + accessor_4, // weights_0 + (sizeof (accessor_4)), + accessor_1, // joints_0 + (sizeof (accessor_1)), + accessor_0, // indices + (sizeof (accessor_0)), +}; + +extern const Skin skin_0; +const Node node_0 = { + -1, // parent_ix + NULL, // skin + NULL, // mesh + D3DXVECTOR3( 0.0000000f, 0.0000000f, 0.0000000f), // translation + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 1.0000000f), // rotation + D3DXVECTOR3( 1.0000000f, 1.0000000f, 1.0000000f), // scale +}; + +const Node node_1 = { + 0, // parent_ix + NULL, // skin + NULL, // mesh + D3DXVECTOR3( 0.0000000f, 0.0000000f, 0.0000000f), // translation + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 1.0000000f), // rotation + D3DXVECTOR3( 1.0000000f, 1.0000000f, 1.0000000f), // scale +}; + +const Node node_2 = { + 1, // parent_ix + &skin_0, // skin + &mesh_0, // mesh + D3DXVECTOR3( 0.0000000f, 0.0000000f, 0.0000000f), // translation + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 1.0000000f), // rotation + D3DXVECTOR3( 1.0000000f, 1.0000000f, 1.0000000f), // scale +}; + +const Node node_3 = { + 1, // parent_ix + NULL, // skin + NULL, // mesh + D3DXVECTOR3( 0.0000000f, 0.0000000f, 0.0000000f), // translation + D3DXVECTOR4( 0.0000000f, 0.0000000f, 0.0000000f, 1.0000000f), // rotation + D3DXVECTOR3( 1.0000000f, 1.0000000f, 1.0000000f), // scale +}; + +const Node node_4 = { + 3, // parent_ix + NULL, // skin + NULL, // mesh + D3DXVECTOR3( 0.0000000f, 0.0279775f, 4.1870770f), // translation + D3DXVECTOR4(-0.0000000f, 0.0002899f, -0.0000000f, -0.9999999f), // rotation + D3DXVECTOR3( 1.0000000f, 1.0000000f, 1.0000000f), // scale +}; + +const Node * nodes[] = { + &node_0, + &node_1, + &node_2, + &node_3, + &node_4, +}; + +const int nodes_length = (sizeof (nodes)) / (sizeof (nodes[0])); + +const int skin_0__joints[] = { + 3, + 4, +}; + +const Skin skin_0 = { + accessor_9, // inverse bind matrices + skin_0__joints, // joints + 2, // joints length +}; + +const AnimationSampler animation_0__sampler_0 = { + accessor_5, // input, keyframe timestamps + accessor_6, // output, keyframe values (void *) + accessor_5_length, // length +}; + +const AnimationSampler animation_0__sampler_1 = { + accessor_5, // input, keyframe timestamps + accessor_7, // output, keyframe values (void *) + accessor_5_length, // length +}; + +const AnimationSampler animation_0__sampler_2 = { + accessor_5, // input, keyframe timestamps + accessor_8, // output, keyframe values (void *) + accessor_5_length, // length +}; + +const AnimationChannel animation_0__channels[] = { + &animation_0__sampler_0, // animation sampler + { + 4, // target node index + ACP__TRANSLATION, // target path + }, + &animation_0__sampler_1, // animation sampler + { + 4, // target node index + ACP__ROTATION, // target path + }, + &animation_0__sampler_2, // animation sampler + { + 4, // target node index + ACP__SCALE, // target path + }, +}; + +