123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- /*
- Open Asset Import Library (assimp)
- ----------------------------------------------------------------------
- Copyright (c) 2006-2025, assimp team
- All rights reserved.
- Redistribution and use of this software in source and binary forms,
- with or without modification, are permitted provided that the
- following conditions are met:
- * Redistributions of source code must retain the above
- copyright notice, this list of conditions and the
- following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the
- following disclaimer in the documentation and/or other
- materials provided with the distribution.
- * Neither the name of the assimp team, nor the names of its
- contributors may be used to endorse or promote products
- derived from this software without specific prior
- written permission of the assimp team.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ----------------------------------------------------------------------
- */
- #ifndef AI_OPENGEXSTRUCTS_H_INC
- #define AI_OPENGEXSTRUCTS_H_INC
- #include <string>
- #include <map>
- namespace Assimp {
- namespace OpenGEX {
- struct Skin;
- struct Object;
- struct LightObject;
- struct CameraObject;
- struct Material;
- struct BoneNode;
- struct BoneCountArray;
- struct BoneIndexArray;
- struct BoneWeightArray;
- struct Metric {
- float m_distance;
- float m_angle;
- float m_time;
- float m_up;
- };
- struct VertexArray {
- std::string arrayAttrib;
- unsigned int morphIndex;
- };
- struct IndexArray {
- unsigned int materialIndex;
- unsigned int restartIndex;
- std::string frontFace;
- };
- struct Mesh {
- unsigned int meshLevel;
- std::string meshPrimitive;
- Skin *skinStructure;
- };
- struct Node {
- std::string nodeName;
- };
- struct GeometryNode {
- bool visibleFlag[ 2 ];
- bool shadowFlag[ 2 ];
- bool motionBlurFlag[ 2 ];
- };
- struct LightNode {
- bool shadowFlag[ 2 ];
- const LightObject *lightObjectStructure;
- };
- struct CameraNode {
- const CameraObject *cameraObjectStructure;
- };
- struct GeometryObject {
- Object *object;
- bool visibleFlag;
- bool shadowFlag;
- bool motionBlurFlag;
- std::map<std::string, Mesh*> meshMap;
- };
- struct LightObject {
- Object *object;
- std::string typeString;
- bool shadowFlag;
- };
- struct CameraObject {
- float focalLength;
- float nearDepth;
- float farDepth;
- };
- struct Matrix {
- bool objectFlag;
- };
- struct Transform {
- Matrix *matrix;
- int transformCount;
- const float *transformArray;
- };
- struct Translation {
- std::string translationKind;
- };
- struct Rotation {
- std::string rotationKind;
- };
- struct Scale {
- std::string scaleKind;
- };
- struct Name {
- std::string name;
- };
- struct ObjectRef {
- Object *targetStructure;
- };
- struct MaterialRef {
- unsigned int materialIndex;
- const Material *targetStructure;
- };
- struct BoneRefArray {
- int boneCount;
- const BoneNode **boneNodeArray;
- };
- struct BoneCount {
- int vertexCount;
- const unsigned short *boneCountArray;
- unsigned short *arrayStorage;
- };
- struct BoneIndex {
- int boneIndexCount;
- const unsigned short *boneIndexArray;
- unsigned short *arrayStorage;
- };
- struct BoneWeight {
- int boneWeightCount;
- const float *boneWeightArray;
- };
- struct Skeleton {
- const BoneRefArray *boneRefArrayStructure;
- const Transform *transformStructure;
- };
- struct Skin {
- const Skeleton *skeletonStructure;
- const BoneCountArray *boneCountArrayStructure;
- const BoneIndexArray *boneIndexArrayStructure;
- const BoneWeightArray *boneWeightArrayStructure;
- };
- struct Material {
- bool twoSidedFlag;
- const char *materialName;
- };
- struct Attrib {
- std::string attribString;
- };
- struct Param {
- float param;
- };
- struct Color {
- float color[ 4 ];
- };
- struct Texture {
- std::string textureName;
- unsigned int texcoordIndex;
- };
- struct Atten {
- std::string attenKind;
- std::string curveType;
- float beginParam;
- float endParam;
- float scaleParam;
- float offsetParam;
- float constantParam;
- float linearParam;
- float quadraticParam;
- float powerParam;
- };
- struct Key {
- std::string keyKind;
- bool scalarFlag;
- };
- struct Curve {
- std::string curveType;
- const Key *keyValueStructure;
- const Key *keyControlStructure[ 2 ];
- const Key *keyTensionStructure;
- const Key *keyContinuityStructure;
- const Key *keyBiasStructure;
- };
- struct Animation {
- int clipIndex;
- bool beginFlag;
- bool endFlag;
- float beginTime;
- float endTime;
- };
- struct OpenGexDataDescription {
- float distanceScale;
- float angleScale;
- float timeScale;
- int upDirection;
- };
- } // Namespace OpenGEX
- } // Namespace Assimp
- #endif // AI_OPENGEXSTRUCTS_H_INC
|