Mostly formatting commit, small elaboration in extra handling API (take pointer to importer).

This commit is contained in:
Nathan Letwory 2011-03-25 09:52:36 +00:00
parent 5f5d091554
commit c5c4b31d6b
4 changed files with 867 additions and 889 deletions

File diff suppressed because it is too large Load Diff

@ -53,7 +53,7 @@ struct bContext;
/** Importer class. */
class DocumentImporter : COLLADAFW::IWriter
{
public:
public:
//! Enumeration to denote the stage of import
enum ImportStage {
General, //!< First pass to collect all data except controller
@ -78,8 +78,8 @@ class DocumentImporter : COLLADAFW::IWriter
void translate_anim_recursive(COLLADAFW::Node*, COLLADAFW::Node*, Object*);
/** This method will be called if an error in the loading process occurred and the loader cannot
continue to load. The writer should undo all operations that have been performed.
@param errorMessage A message containing informations about the error that occurred.
continue to load. The writer should undo all operations that have been performed.
@param errorMessage A message containing informations about the error that occurred.
*/
void cancel(const COLLADAFW::String& errorMessage);
@ -88,7 +88,7 @@ class DocumentImporter : COLLADAFW::IWriter
/** This method is called after the last write* method. No other methods will be called after this.*/
void finish();
bool writeGlobalAsset(const COLLADAFW::FileInfo*);
bool writeScene(const COLLADAFW::Scene*);
@ -121,31 +121,34 @@ class DocumentImporter : COLLADAFW::IWriter
bool writeKinematicsScene(const COLLADAFW::KinematicsScene*);
private:
/** Add element and data for UniqueId */
bool addElementData(const COLLADAFW::UniqueId &uid);
private:
/** Current import stage we're in. */
ImportStage mImportStage;
std::string mFilename;
bContext *mContext;
bContext *mContext;
UnitConverter unit_converter;
ArmatureImporter armature_importer;
MeshImporter mesh_importer;
AnimationImporter anim_importer;
UnitConverter unit_converter;
ArmatureImporter armature_importer;
MeshImporter mesh_importer;
AnimationImporter anim_importer;
std::map<COLLADAFW::UniqueId, Image*> uid_image_map;
std::map<COLLADAFW::UniqueId, Material*> uid_material_map;
std::map<COLLADAFW::UniqueId, Material*> uid_effect_map;
std::map<COLLADAFW::UniqueId, Camera*> uid_camera_map;
std::map<COLLADAFW::UniqueId, Lamp*> uid_lamp_map;
std::map<Material*, TexIndexTextureArrayMap> material_texture_mapping_map;
std::map<COLLADAFW::UniqueId, Object*> object_map;
std::map<COLLADAFW::UniqueId, COLLADAFW::Node*> node_map;
std::vector<const COLLADAFW::VisualScene*> vscenes;
std::vector<Object*> libnode_ob;
std::map<COLLADAFW::UniqueId, Image*> uid_image_map;
std::map<COLLADAFW::UniqueId, Material*> uid_material_map;
std::map<COLLADAFW::UniqueId, Material*> uid_effect_map;
std::map<COLLADAFW::UniqueId, Camera*> uid_camera_map;
std::map<COLLADAFW::UniqueId, Lamp*> uid_lamp_map;
std::map<Material*, TexIndexTextureArrayMap> material_texture_mapping_map;
std::map<COLLADAFW::UniqueId, Object*> object_map;
std::map<COLLADAFW::UniqueId, COLLADAFW::Node*> node_map;
std::vector<const COLLADAFW::VisualScene*> vscenes;
std::vector<Object*> libnode_ob;
std::map<COLLADAFW::UniqueId, COLLADAFW::Node*> root_map; // find root joint by child joint uid, for bone tree evaluation during resampling
std::map<COLLADAFW::UniqueId, COLLADAFW::Node*> root_map; // find root joint by child joint uid, for bone tree evaluation during resampling
};

@ -27,14 +27,16 @@
*/
#include <stddef.h>
#include "BLI_string.h"
#include "ExtraHandler.h"
ExtraHandler::ExtraHandler(){}
ExtraHandler::ExtraHandler(DocumentImporter *dimp)
{
this->dimp = dimp;
}
ExtraHandler::~ExtraHandler(){}
ExtraHandler::~ExtraHandler() {}
bool ExtraHandler::elementBegin( const char* elementName, const char** attributes)
{
@ -45,6 +47,7 @@ bool ExtraHandler::elementBegin( const char* elementName, const char** attribute
bool ExtraHandler::elementEnd(const char* elementName )
{
printf("end: %s\n", elementName);
currentUid = COLLADAFW::UniqueId();
return true;
}
@ -62,6 +65,7 @@ bool ExtraHandler::parseElement (
const COLLADAFW::UniqueId& uniqueId ) {
if(BLI_strcaseeq(profileName, "blender")) {
printf("In parseElement for supported profile %s for id %s\n", profileName, uniqueId.toAscii().c_str());
currentUid = uniqueId;
return true;
}
printf("In parseElement for unsupported profile %s for id %s\n", profileName, uniqueId.toAscii().c_str());

@ -33,6 +33,7 @@
#include "COLLADASaxFWLIExtraDataCallbackHandler.h"
#include "DocumentImporter.h"
/** \brief Handler class for <extra> data, through which different
* profiles can be handled
@ -41,7 +42,7 @@ class ExtraHandler : public COLLADASaxFWL::IExtraDataCallbackHandler
{
public:
/** Constructor. */
ExtraHandler();
ExtraHandler(DocumentImporter *dimp);
/** Destructor. */
virtual ~ExtraHandler();
@ -65,5 +66,10 @@ private:
ExtraHandler( const ExtraHandler& pre );
/** Disable default assignment operator. */
const ExtraHandler& operator= ( const ExtraHandler& pre );
/** Handle to DocumentImporter for interface to extra element data saving. */
DocumentImporter* dimp;
/** Holds Id of element for which <extra> XML elements are handled. */
COLLADAFW::UniqueId currentUid;
};