kfbx.h File Reference

#include <fbxfilesdk/fbxfilesdk_def.h>
#include <fbxfilesdk/components/kbaselib/klib/kstring.h>
#include <fbxfilesdk/components/kbaselib/klib/ktime.h>
#include <fbxfilesdk/components/kbaselib/klib/kerror.h>
#include <fbxfilesdk/components/kbaselib/klib/karrayul.h>
#include <fbxfilesdk/components/kbaselib/klib/ksystemtime.h>
#include <fbxfilesdk/components/kbaselib/klib/kcharptrset.h>
#include <fbxfilesdk/fbxfilesdk_nsbegin.h>
#include <fbxfilesdk/fbxfilesdk_nsend.h>

Go to the source code of this file.

Classes

class   KDefaultRenderResolution
  Render and resolution information. More...
class   KFbxFileHeaderInfo
  FBX header information used at beginning of the FBX file to get or set important values like the file format version number (mFileVersion). More...
class   KFbx
  KFbx represents an FBX file. More...
struct   KFbx::KFbxAutoResetXRefManager

Defines

#define  FBX_DEFAULT_VERSION_NUMBER   7200
  Defines the current FBX file version number in four digits.

Enumerations

enum   { FBX_NO_SECTION = -1, FBX_MAIN_SECTION, FBX_EXTENSION_SECTION_0 }

Variables

class KFBX_DLL  KFbxXRefManager

Detailed Description

Definition in file kfbx.h.


Define Documentation

#define FBX_DEFAULT_VERSION_NUMBER   7200

Defines the current FBX file version number in four digits.

The first digit is the major version number a the last three digits are the minor version number (e.g. 7100 = 7.1). The following is the version history of FBX:

  • Version 2000 - New KFCurve and embedded FBX, no FCurve/FCurve node storing. No more .takf file like in earlier version, no history.
  • Version 2001 - Version incremented to support KTime save in native (integer, not double) format.
  • Version 3000 - FiLMBOX 3.0 version, nothing changed in current class since version 2001. FBX SDK 3.0 and 3.6
  • Version 3001 - FiLMBOX 3.0 encrypted version, only a trial. Encrypted files could only be written in debug versions. Cannot switch to a higher version number now because any file with a version number >= 3001 is read as encrypted. Hence, this value now only gives file type. (3000 or less -> binary, 3001 or more -> encrypted) FiLMBOX 3.2, FiLMBOX 3.5 and "Online" 3.51 have been released with version 3000.
  • Version 4000 - MotionBuilder 4.0, new type in KFCurve tangents, supported in FiLMBOX 3.5 but not by earlier versions. Version number is now stored in section footer. Before September 3rd 2002, the version number was always 3000 in main section footer. Now the main section footer has version number 4000. The minimum version number in footer of an extension section is 4000.
  • Version 4001 - ASCII Header is 4.1. MotionBuilder 4.01, to fix FCurveNode problem with layer types in version 4000 the main section footer has version number 4001. Now the footer for extension sections has version number 4001.
  • Version 4050 - ASCII Header is 4.5. MotionBuilder 4.1 or 4.5 before January 22nd 2003. This is because EvaluationProperties now have color. Now the main section footer has version number 4050. Now the footer for extension sections has version number 4050.
  • Version 5000 - ASCII Header is not compatible anymore with MotionBuilder 4.0, 4.01 and 4.02 and FBX SDK 3.6 and 3.7 MotionBuilder 4.03 and 4.1 or 4.5 from January 22nd 2003 FBX SDK 3.6.1. New extended header to improve FBX file version management. Now the extended header and the main section footer have version number 5000. Now the footer for extension sections has version number 5000.
  • Version 5800 - This was a temporary version while waiting for version 6000 renders the previous versions incompatible with MotionBuilder 6.0. For now, however, this format is needed to allow some tools/plugins (For example Maya) to correctly detect that the file has some features that are not completely backward compatible (For example: pivots defined with _pre/_post nodes which require a special processing). By incrementing only the minor version we do not compromise the integrity of the files.
  • Version 6000 - Header version is now 6.0. Extended header now contain a creation time stamp that can be retrieve without parsing the main section of the file. A creator tag (string) is now stored in the Extended header. This contain the originator (MB/FBXSDK) of the file and the build number of the originator. First release of the file format using the KProperties to store/retrieve information.
  • Version 6100 - Added support for multiple attributes (mainly multiple geometry) at the node level. The pointer to the node attribute have been replaced by a connection between the node and its attribute(s).
  • Version 7000 - First version of the 7.0 series; most likely very short-lived, developed for Protein, before ADP. Supports reference cloning, external documents, blobs, unique IDs (per file), property templates. So many changes that it was decided to break from 6.0 to keep Motion Builder intact.
  • Version 7099 - Temporary version for FBX 2011 alpha releases.
  • Version 7100 Official file version for FBX 2011, add support for animation to FBX 7. First version of FBX SDK with FBX 7 files as the default file format.
  • Version 7200 Added support for multiple blend shape deformers and In-Between blend-shapes on each geometry. Moved shape(KFbxShape) to its own section other than as a part of geometry section. Add support to store blend shape deformer(KFbxBlendShape), blend shape channel(KFbxBlendShapeChannel), Substance(KFbxProceduralTexture) and Lines(KFbxLine). Add support to store 3 different smooth binding modes of KFbxSkin, including classic linear, dual quaternion and blended mode of previous two modes. Added the CLAMP_PROGRESSIVE tangent mode. The KFCurve::KeyAttrDataFloat data array now stores as integer values (ASCII mode) to to eliminate float to int precision errors. KFbxLayeredTexture now stores alphas for its sub textures.

Definition at line 137 of file kfbx.h.


Enumeration Type Documentation

anonymous enum

used internally by Readers to evaluate what is the current section

Enumerator:
FBX_NO_SECTION 
FBX_MAIN_SECTION 
FBX_EXTENSION_SECTION_0 

Definition at line 143 of file kfbx.h.

    {
        FBX_NO_SECTION = -1,        // indicate not in a valid section
        FBX_MAIN_SECTION,           // indicate currently in the main section
        FBX_EXTENSION_SECTION_0,    // indicate currently in the extention section 0
        // FBX_EXTENSION_SECTION_1,
        // FBX_EXTENSION_SECTION_2,
        // ...
    };

Variable Documentation

class KFBX_DLL KFbxXRefManager

Definition at line 52 of file kfbx.h.