18 #ifndef INCLUDED_COMMONCONVERT
19 #define INCLUDED_COMMONCONVERT
26 class FCDEntityInstance;
28 class FCDSkinController;
39 virtual const char*
what()
const throw() {
return msg.c_str(); }
47 virtual void operator() (
const char* data,
unsigned int length)=0;
61 void OnError(FUError::Level errorLevel, uint32 errorCode, uint32 lineNumber);
119 #define REQUIRE(value, message) require_(__LINE__, value, "Assertion not satisfied", "failed requirement \"" message "\"")
122 #define REQUIRE_SUCCESS(status) require_(__LINE__, status, "FCollada error", "Line " STRINGIFY(__LINE__))
123 #define STRINGIFY(x) #x
125 void require_(
int line,
bool value,
const char* type,
const char* message);
130 output((
char*)&data,
sizeof(
T));
144 bool FindSingleInstance(FCDSceneNode* node, FCDEntityInstance*& instance, FMMatrix44& transform);
151 void SkinReduceInfluences(FCDSkinController* skin,
size_t maxInfluenceCount,
float minimumWeight);
177 void TransformBones(std::vector<BoneTransform>& bones,
const FMMatrix44& scaleTransform,
bool yUp);
181 #endif // INCLUDED_COMMONCONVERT
FMMatrix44 m_EntityTransform
void require_(int line, bool value, const char *type, const char *message)
Standard document loader.
Standard error handler - logs FCollada messages using Log(), and also maintains a list of XML parser ...
ColladaException(const std::string &msg)
void ReadExtras(xmlNode *colladaNode)
FCDEntityInstance * m_Instance
FCDocument * GetDocument() const
Returns the FCDocument that was loaded.
void SkinReduceInfluences(FCDSkinController *skin, size_t maxInfluenceCount, float minimumWeight)
Like FCDSkinController::ReduceInfluences but works correctly.
virtual const char * what() const
FCDExtra * GetExtra() const
Returns the <extra> data from the <COLLADA> element.
CommonConvert(const char *text, std::string &xmlErrors)
bool FindSingleInstance(FCDSceneNode *node, FCDEntityInstance *&instance, FMMatrix44 &transform)
Tries to find a single suitable entity instance in the scene.
FMMatrix44 FMMatrix44_Identity
std::auto_ptr< FCDocument > document
void FixSkeletonRoots(FCDControllerInstance &controllerInstance)
Fixes some occasional problems with the skeleton root definitions in a controller.
const Skeleton & FindSkeleton(const FCDControllerInstance &controllerInstance)
Finds the skeleton definition which best matches the given controller.
const FColladaDocument & GetDocument() const
void TransformBones(std::vector< BoneTransform > &bones, const FMMatrix44 &scaleTransform, bool yUp)
Performs the standard transformations on bones, applying a scale matrix and moving them into the game...
void operator=(FColladaErrorHandler)
FColladaErrorHandler(std::string &xmlErrors)
void OnError(FUError::Level errorLevel, uint32 errorCode, uint32 lineNumber)
virtual void operator()(const char *data, unsigned int length)=0
#define T(string_literal)
FCDEntityInstance & GetInstance()
Wrapper for code shared between the PMD and PSA converters.
void LoadFromText(const char *text)
Loads the document from the given XML string.
std::auto_ptr< FCDExtra > extra
void write(OutputCB &output, const T &data)
Outputs a structure, using sizeof to get the size.
FColladaErrorHandler m_Err
const FMMatrix44 & GetEntityTransform() const