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