Sirikata
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes
Sirikata::Models::ColladaDocumentImporter Class Reference

An implementation of the OpenCOLLADA IWriter class that is responsible for importing COLLADA documents and re-Writing (i.e. More...

#include <ColladaDocumentImporter.hpp>

Inheritance diagram for Sirikata::Models::ColladaDocumentImporter:
Collaboration diagram for Sirikata::Models::ColladaDocumentImporter:

List of all members.

Classes

struct  AnimationCurve
 Generated by "sampler" tags as part of an animation. More...
struct  ExtraGeometryData
struct  ExtraPrimitiveData
struct  OCSkinController
struct  OCSkinControllerData
class  UniqueIdHash

Public Member Functions

 ColladaDocumentImporter (Transfer::URI const &uri, const SHA256 &hash)
 ColladaDocumentImporter (std::vector< Transfer::URI > uriList)
 ~ColladaDocumentImporter ()
ColladaDocumentPtr getDocument () const
String documentURI () const
Mesh::MeshdataPtr getMeshdata ()
virtual void cancel (COLLADAFW::String const &errorMessage)
virtual void start ()
virtual void finish ()
virtual bool writeGlobalAsset (COLLADAFW::FileInfo const *asset)
virtual bool writeScene (COLLADAFW::Scene const *scene)
virtual bool writeVisualScene (COLLADAFW::VisualScene const *visualScene)
virtual bool writeLibraryNodes (COLLADAFW::LibraryNodes const *libraryNodes)
virtual bool writeGeometry (COLLADAFW::Geometry const *geometry)
virtual bool writeMaterial (COLLADAFW::Material const *material)
virtual bool writeEffect (COLLADAFW::Effect const *effect)
virtual bool writeCamera (COLLADAFW::Camera const *camera)
virtual bool writeImage (COLLADAFW::Image const *image)
virtual bool writeLight (COLLADAFW::Light const *light)
virtual bool writeAnimation (COLLADAFW::Animation const *animation)
virtual bool writeAnimationList (COLLADAFW::AnimationList const *animationList)
virtual bool writeSkinControllerData (COLLADAFW::SkinControllerData const *skinControllerData)
virtual bool writeController (COLLADAFW::Controller const *controller)
virtual bool writeFormulas (COLLADAFW::Formulas const *formulas)
virtual bool writeKinematicsScene (COLLADAFW::KinematicsScene const *kinematicsScene)

Protected Types

typedef std::map
< COLLADAFW::UniqueId, const
COLLADAFW::VisualScene * > 
VisualSceneMap
typedef std::map
< COLLADAFW::UniqueId, const
COLLADAFW::Node * > 
NodeMap
typedef
std::tr1::unordered_map
< COLLADAFW::UniqueId, size_t,
UniqueIdHash
IndicesMap
typedef
std::tr1::unordered_multimap
< COLLADAFW::UniqueId, size_t,
UniqueIdHash
IndicesMultimap
typedef
std::tr1::unordered_map
< COLLADAFW::UniqueId,
COLLADAFW::UniqueId,
UniqueIdHash
IdMap
typedef
std::tr1::unordered_map
< COLLADAFW::UniqueId,
OCSkinControllerData,
UniqueIdHash
OCSkinControllerDataMap
typedef
std::tr1::unordered_map
< COLLADAFW::UniqueId,
OCSkinController, UniqueIdHash
OCSkinControllerMap
typedef
std::tr1::unordered_map
< COLLADAFW::UniqueId,
AnimationCurve, UniqueIdHash
AnimationCurveMap
typedef std::vector
< COLLADAFW::AnimationList::AnimationBinding > 
AnimationBindings
 AnimationBindings uniquely identify AnimationCurves for each (joint,animation).
typedef
std::tr1::unordered_map
< COLLADAFW::UniqueId,
AnimationBindings,
UniqueIdHash
AnimationBindingsMap
typedef
std::tr1::unordered_map
< COLLADAFW::UniqueId,
COLLADAFW::Effect,
UniqueIdHash
ColladaEffectMap
typedef
std::tr1::unordered_map
< COLLADAFW::UniqueId,
std::string, UniqueIdHash
URIMap
typedef
std::tr1::unordered_map
< COLLADAFW::UniqueId, size_t,
UniqueIdHash
IndexMap

Protected Member Functions

void setupPrim (Mesh::SubMeshGeometry::Primitive *outputPrim, ExtraPrimitiveData &outputPrimExtra, const COLLADAFW::MeshPrimitive *prim)

Protected Attributes

Matrix4x4f mChangeUp
Matrix4x4f mUnitScale
COLLADAFW::UniqueId mVisualSceneId
VisualSceneMap mVisualScenes
NodeMap mLibraryNodes
OCSkinControllerDataMap mSkinControllerData
OCSkinControllerMap mSkinControllers
AnimationCurveMap mAnimationCurves
std::set< String > mAnimationNames
bool mOnlyHasDefaultAnimation
AnimationBindingsMap mAnimationBindings
std::vector< size_t > mAnimatedNodeIndices
Mesh::SubMeshGeometryList mGeometries
IndicesMultimap mGeometryMap
std::vector< ExtraGeometryDatamExtraGeometryData
IndicesMap mLightMap
Mesh::LightInfoList mLights
IdMap mMaterialMap
ColladaEffectMap mColladaEffects
IndicesMap mConvertedEffects
URIMap mTextureMap
std::vector
< COLLADAFW::EffectCommon * > 
mColladaClonedCommonEffects
Mesh::MaterialEffectInfoList mEffects
IndexMap mNodeIndices
IndexMap mJointIndices
Mesh::MeshdataPtr mMesh

Private Types

enum  State { CANCELLED = -1, IDLE, STARTED, FINISHED }

Private Member Functions

 ColladaDocumentImporter (ColladaDocumentImporter const &)
ColladaDocumentImporteroperator= (ColladaDocumentImporter const &)
void postProcess ()
void translateNodes ()
void translateSkinControllers ()
void makeTexture (Mesh::MaterialEffectInfo::Texture::Affecting type, const COLLADAFW::MaterialBinding *binding, const COLLADAFW::EffectCommon *effect, const COLLADAFW::ColorOrTexture &color, size_t geom_index, size_t prim_index, Mesh::MaterialEffectInfo::TextureList &output)
size_t finishEffect (const COLLADAFW::MaterialBinding *binding, size_t geom_index, size_t prim_index)

Private Attributes

ColladaDocumentPtr mDocument
State mState

Detailed Description

An implementation of the OpenCOLLADA IWriter class that is responsible for importing COLLADA documents and re-Writing (i.e.

converting) the data to suit the application.


Member Typedef Documentation

typedef std::vector<COLLADAFW::AnimationList::AnimationBinding> Sirikata::Models::ColladaDocumentImporter::AnimationBindings [protected]

AnimationBindings uniquely identify AnimationCurves for each (joint,animation).

This is maintained because OpenCOLLADA keeps these decoupled and we need to combine the info to attach the keyframes for each animation to the corresponding joint (node) after parsing.

typedef std::tr1::unordered_map<COLLADAFW::UniqueId, AnimationBindings, UniqueIdHash> Sirikata::Models::ColladaDocumentImporter::AnimationBindingsMap [protected]
typedef std::tr1::unordered_map<COLLADAFW::UniqueId, AnimationCurve, UniqueIdHash> Sirikata::Models::ColladaDocumentImporter::AnimationCurveMap [protected]
typedef std::tr1::unordered_map<COLLADAFW::UniqueId, COLLADAFW::Effect, UniqueIdHash> Sirikata::Models::ColladaDocumentImporter::ColladaEffectMap [protected]
typedef std::tr1::unordered_map<COLLADAFW::UniqueId, COLLADAFW::UniqueId, UniqueIdHash> Sirikata::Models::ColladaDocumentImporter::IdMap [protected]
typedef std::tr1::unordered_map<COLLADAFW::UniqueId, size_t, UniqueIdHash> Sirikata::Models::ColladaDocumentImporter::IndexMap [protected]
typedef std::tr1::unordered_map<COLLADAFW::UniqueId, size_t, UniqueIdHash> Sirikata::Models::ColladaDocumentImporter::IndicesMap [protected]
typedef std::tr1::unordered_multimap<COLLADAFW::UniqueId, size_t, UniqueIdHash> Sirikata::Models::ColladaDocumentImporter::IndicesMultimap [protected]
typedef std::map<COLLADAFW::UniqueId, const COLLADAFW::Node*> Sirikata::Models::ColladaDocumentImporter::NodeMap [protected]
typedef std::tr1::unordered_map<COLLADAFW::UniqueId,OCSkinControllerData, UniqueIdHash> Sirikata::Models::ColladaDocumentImporter::OCSkinControllerDataMap [protected]
typedef std::tr1::unordered_map<COLLADAFW::UniqueId,OCSkinController, UniqueIdHash> Sirikata::Models::ColladaDocumentImporter::OCSkinControllerMap [protected]
typedef std::tr1::unordered_map<COLLADAFW::UniqueId, std::string, UniqueIdHash> Sirikata::Models::ColladaDocumentImporter::URIMap [protected]
typedef std::map<COLLADAFW::UniqueId, const COLLADAFW::VisualScene*> Sirikata::Models::ColladaDocumentImporter::VisualSceneMap [protected]

Member Enumeration Documentation

Enumerator:
CANCELLED 
IDLE 
STARTED 
FINISHED 

Constructor & Destructor Documentation

Sirikata::Models::ColladaDocumentImporter::ColladaDocumentImporter ( Transfer::URI const &  uri,
const SHA256 hash 
) [explicit]
Sirikata::Models::ColladaDocumentImporter::ColladaDocumentImporter ( std::vector< Transfer::URI uriList) [explicit]
Sirikata::Models::ColladaDocumentImporter::~ColladaDocumentImporter ( )
Sirikata::Models::ColladaDocumentImporter::ColladaDocumentImporter ( ColladaDocumentImporter const &  ) [private]

Member Function Documentation

void Sirikata::Models::ColladaDocumentImporter::cancel ( COLLADAFW::String const &  errorMessage) [virtual]
String Sirikata::Models::ColladaDocumentImporter::documentURI ( ) const
void Sirikata::Models::ColladaDocumentImporter::finish ( ) [virtual]
size_t Sirikata::Models::ColladaDocumentImporter::finishEffect ( const COLLADAFW::MaterialBinding *  binding,
size_t  geom_index,
size_t  prim_index 
) [private]
ColladaDocumentPtr Sirikata::Models::ColladaDocumentImporter::getDocument ( ) const
Mesh::MeshdataPtr Sirikata::Models::ColladaDocumentImporter::getMeshdata ( ) [inline]
void Sirikata::Models::ColladaDocumentImporter::makeTexture ( Mesh::MaterialEffectInfo::Texture::Affecting  type,
const COLLADAFW::MaterialBinding *  binding,
const COLLADAFW::EffectCommon *  effect,
const COLLADAFW::ColorOrTexture &  color,
size_t  geom_index,
size_t  prim_index,
Mesh::MaterialEffectInfo::TextureList output 
) [private]
ColladaDocumentImporter& Sirikata::Models::ColladaDocumentImporter::operator= ( ColladaDocumentImporter const &  ) [private]
void Sirikata::Models::ColladaDocumentImporter::postProcess ( ) [private]
void Sirikata::Models::ColladaDocumentImporter::setupPrim ( Mesh::SubMeshGeometry::Primitive outputPrim,
ExtraPrimitiveData outputPrimExtra,
const COLLADAFW::MeshPrimitive *  prim 
) [protected]
void Sirikata::Models::ColladaDocumentImporter::start ( ) [virtual]
void Sirikata::Models::ColladaDocumentImporter::translateNodes ( ) [private]
void Sirikata::Models::ColladaDocumentImporter::translateSkinControllers ( ) [private]
bool Sirikata::Models::ColladaDocumentImporter::writeAnimation ( COLLADAFW::Animation const *  animation) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeAnimationList ( COLLADAFW::AnimationList const *  animationList) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeCamera ( COLLADAFW::Camera const *  camera) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeController ( COLLADAFW::Controller const *  controller) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeEffect ( COLLADAFW::Effect const *  effect) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeFormulas ( COLLADAFW::Formulas const *  formulas) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeGeometry ( COLLADAFW::Geometry const *  geometry) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeGlobalAsset ( COLLADAFW::FileInfo const *  asset) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeImage ( COLLADAFW::Image const *  image) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeKinematicsScene ( COLLADAFW::KinematicsScene const *  kinematicsScene) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeLibraryNodes ( COLLADAFW::LibraryNodes const *  libraryNodes) [virtual]

References mLibraryNodes, and node.

bool Sirikata::Models::ColladaDocumentImporter::writeLight ( COLLADAFW::Light const *  light) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeMaterial ( COLLADAFW::Material const *  material) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeScene ( COLLADAFW::Scene const *  scene) [virtual]

References mVisualSceneId.

bool Sirikata::Models::ColladaDocumentImporter::writeSkinControllerData ( COLLADAFW::SkinControllerData const *  skinControllerData) [virtual]
bool Sirikata::Models::ColladaDocumentImporter::writeVisualScene ( COLLADAFW::VisualScene const *  visualScene) [virtual]

Member Data Documentation

Referenced by translateNodes(), and writeAnimation().

Referenced by writeAnimation().

Referenced by finish(), and writeGlobalAsset().

std::vector<COLLADAFW::EffectCommon*> Sirikata::Models::ColladaDocumentImporter::mColladaClonedCommonEffects [protected]

Referenced by finishEffect(), and writeEffect().

Referenced by finishEffect().

Referenced by finish(), and finishEffect().

Referenced by finish(), and writeGeometry().

Referenced by finish(), and writeLight().

Referenced by finish(), and writeLight().

Referenced by finishEffect(), and writeMaterial().

Referenced by finish(), and translateNodes().

Referenced by cancel(), finish(), getDocument(), and start().

Referenced by makeTexture(), and writeImage().

Referenced by finish(), and writeGlobalAsset().

Referenced by finish(), translateNodes(), and writeScene().


The documentation for this class was generated from the following files: