8typedef unsigned char u8;
 
    9typedef unsigned short u16;
 
   10typedef unsigned int u32;
 
   12    typedef long long i64;
 
   13    typedef unsigned long long u64;
 
   16    typedef unsigned long u64;
 
   19static_assert(
sizeof(
u8) == 1, 
"u8 is not 1 byte");
 
   20static_assert(
sizeof(
u32) == 4, 
"u32 is not 4 bytes");
 
   21static_assert(
sizeof(
u64) == 8, 
"u64 is not 8 bytes");
 
   22static_assert(
sizeof(
i64) == 8, 
"i64 is not 8 bytes");
 
   77    bool operator!=(
const char* rhs)
 const { 
return !(*
this == rhs); }
 
   92        while (cin != 
end && cout - out < 
N - 1)
 
  123    virtual bool getValues(
double* values, 
int max_size) 
const = 0;
 
  124    virtual bool getValues(
int* values, 
int max_size) 
const = 0;
 
  125    virtual bool getValues(
float* values, 
int max_size) 
const = 0;
 
  153struct AnimationCurveNode;
 
  154struct AnimationLayer;
 
  179        ANIMATION_CURVE_NODE,
 
  538IScene* 
load(
const u8* data, 
int size, 
u64 flags, 
JobProcessor job_processor = 
nullptr, 
void* job_user_ptr = 
nullptr);
 
void(*)(JobFunction, void *, void *, u32, u32) JobProcessor
 
@ CoordSystem_RightHanded
 
void(*)(void *) JobFunction
 
double fbxTimeToSeconds(i64 value)
 
i64 secondsToFbxTime(double value)
 
@ FrameRate_NTSC_FULL_FRAME
 
@ FrameRate_NTSC_DROP_FRAME
 
IScene * load(const u8 *data, int size, u64 flags, JobProcessor job_processor, void *job_user_ptr)
 
AnimationCurve(const Scene &_scene, const IElement &_element)
 
virtual int getKeyCount() const =0
 
virtual const i64 * getKeyTime() const =0
 
virtual const float * getKeyValue() const =0
 
virtual float getAnimationDX() const =0
 
virtual const Object * getBone() const =0
 
virtual const ofbx::AnimationCurve * getCurve(int idx) const =0
 
virtual Vec3 getNodeLocalTransform(double time) const =0
 
AnimationCurveNode(const Scene &_scene, const IElement &_element)
 
virtual float getAnimationDZ() const =0
 
virtual float getAnimationDY() const =0
 
virtual const AnimationCurveNode * getCurveNode(const Object &bone, const char *property) const =0
 
AnimationLayer(const Scene &_scene, const IElement &_element)
 
virtual const AnimationCurveNode * getCurveNode(int index) const =0
 
virtual const AnimationLayer * getLayer(int index) const =0
 
AnimationStack(const Scene &_scene, const IElement &_element)
 
virtual double getDeformPercent() const =0
 
virtual int getShapeCount() const =0
 
virtual const struct Shape * getShape(int idx) const =0
 
BlendShapeChannel(const Scene &_scene, const IElement &_element)
 
BlendShape(const Scene &_scene, const IElement &_element)
 
virtual const BlendShapeChannel * getBlendShapeChannel(int idx) const =0
 
virtual int getBlendShapeChannelCount() const =0
 
virtual Matrix getTransformLinkMatrix() const =0
 
virtual Matrix getTransformMatrix() const =0
 
virtual int getIndicesCount() const =0
 
virtual int getWeightsCount() const =0
 
Cluster(const Scene &_scene, const IElement &_element)
 
virtual const Object * getLink() const =0
 
virtual const int * getIndices() const =0
 
virtual const double * getWeights() const =0
 
bool operator==(const char *rhs) const
 
void toString(char(&out)[N]) const
 
bool operator!=(const char *rhs) const
 
virtual int getIndexCount() const =0
 
virtual const Vec3 * getNormals() const =0
 
virtual const Vec4 * getColors() const =0
 
static const int s_uvs_max
 
virtual const Vec2 * getUVs(int index=0) const =0
 
virtual const int * getMaterials() const =0
 
virtual int getVertexCount() const =0
 
virtual const Vec3 * getTangents() const =0
 
virtual const Vec3 * getVertices() const =0
 
virtual const BlendShape * getBlendShape() const =0
 
virtual const Skin * getSkin() const =0
 
Geometry(const Scene &_scene, const IElement &_element)
 
virtual const int * getFaceIndices() const =0
 
float OriginalUnitScaleFactor
 
virtual IElement * getSibling() const =0
 
virtual IElement * getFirstChild() const =0
 
virtual IElementProperty * getFirstProperty() const =0
 
virtual ~IElement()=default
 
virtual DataView getID() const =0
 
virtual ~IElementProperty()
 
virtual bool getValues(u64 *values, int max_size) const =0
 
virtual bool getValues(int *values, int max_size) const =0
 
virtual bool getValues(double *values, int max_size) const =0
 
virtual IElementProperty * getNext() const =0
 
virtual bool getValues(i64 *values, int max_size) const =0
 
virtual bool getValues(float *values, int max_size) const =0
 
virtual int getCount() const =0
 
virtual Type getType() const =0
 
virtual DataView getValue() const =0
 
virtual int getEmbeddedDataCount() const =0
 
virtual int getAllObjectCount() const =0
 
virtual int getGeometryCount() const =0
 
virtual const GlobalSettings * getGlobalSettings() const =0
 
virtual const Object * getRoot() const =0
 
virtual const Object *const * getAllObjects() const =0
 
virtual const IElement * getRootElement() const =0
 
virtual const TakeInfo * getTakeInfo(const char *name) const =0
 
virtual int getMeshCount() const =0
 
virtual const Mesh * getMesh(int index) const =0
 
virtual int getAnimationStackCount() const =0
 
virtual const AnimationStack * getAnimationStack(int index) const =0
 
virtual DataView getEmbeddedFilename(int index) const =0
 
virtual float getSceneFrameRate() const =0
 
virtual DataView getEmbeddedData(int index) const =0
 
virtual const Geometry * getGeometry(int index) const =0
 
virtual double getAmbientFactor() const =0
 
virtual Color getDiffuseColor() const =0
 
virtual double getSpecularFactor() const =0
 
Material(const Scene &_scene, const IElement &_element)
 
virtual Color getSpecularColor() const =0
 
virtual double getReflectionFactor() const =0
 
virtual double getDiffuseFactor() const =0
 
virtual Color getEmissiveColor() const =0
 
virtual double getBumpFactor() const =0
 
virtual Color getAmbientColor() const =0
 
virtual double getShininessExponent() const =0
 
virtual const Texture * getTexture(Texture::TextureType type) const =0
 
virtual Color getReflectionColor() const =0
 
virtual double getShininess() const =0
 
virtual double getEmissiveFactor() const =0
 
virtual const Material * getMaterial(int idx) const =0
 
Mesh(const Scene &_scene, const IElement &_element)
 
virtual int getMaterialCount() const =0
 
virtual Matrix getGeometricMatrix() const =0
 
virtual const Pose * getPose() const =0
 
virtual const Geometry * getGeometry() const =0
 
virtual DataView getAttributeType() const =0
 
NodeAttribute(const Scene &_scene, const IElement &_element)
 
Matrix getLocalTransform() const
 
Vec3 getScalingOffset() const
 
Vec3 getRotationPivot() const
 
virtual Type getType() const =0
 
Matrix evalLocal(const Vec3 &translation, const Vec3 &rotation) const
 
Vec3 getLocalScaling() const
 
Vec3 getScalingPivot() const
 
Object * resolveObjectLinkReverse(Type type) const
 
const IScene & getScene() const
 
Object * resolveObjectLink(int idx) const
 
RotationOrder getRotationOrder() const
 
Vec3 getLocalTranslation() const
 
Vec3 getPostRotation() const
 
Vec3 getRotationOffset() const
 
Matrix getGlobalTransform() const
 
const Object * node_attribute
 
T * resolveObjectLink(int idx) const
 
Vec3 getPreRotation() const
 
Object(const Scene &_scene, const IElement &_element)
 
Object * getParent() const
 
Vec3 getLocalRotation() const
 
Pose(const Scene &_scene, const IElement &_element)
 
virtual Matrix getMatrix() const =0
 
virtual const Object * getNode() const =0
 
virtual const Vec3 * getNormals() const =0
 
virtual int getVertexCount() const =0
 
virtual const Vec3 * getVertices() const =0
 
Shape(const Scene &_scene, const IElement &_element)
 
virtual const Cluster * getCluster(int idx) const =0
 
Skin(const Scene &_scene, const IElement &_element)
 
virtual int getClusterCount() const =0
 
double reference_time_from
 
Texture(const Scene &_scene, const IElement &_element)
 
virtual DataView getFileName() const =0
 
virtual DataView getRelativeFileName() const =0
 
virtual DataView getEmbeddedData() const =0