/usr/include/opencollada/COLLADASaxFrameworkLoader/COLLADASaxFWLLibraryControllersLoader.h is in opencollada-dev 0.1.0~20140703.ddf8f47+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 | /*
Copyright (c) 2008-2009 NetAllied Systems GmbH
This file is part of COLLADASaxFrameworkLoader.
Licensed under the MIT Open Source License,
for details please see LICENSE file or the website
http://www.opensource.org/licenses/mit-license.php
*/
#ifndef __COLLADASAXFWL_LIBRARYCONTROLLERSLOADER_H__
#define __COLLADASAXFWL_LIBRARYCONTROLLERSLOADER_H__
#include "COLLADASaxFWLPrerequisites.h"
#include "COLLADASaxFWLSourceArrayLoader.h"
#include "Math/COLLADABUMathMatrix4.h"
namespace COLLADAFW
{
class SkinControllerData;
class MorphController;
}
namespace COLLADASaxFWL
{
/** TODO Documentation */
class LibraryControllersLoader : public SourceArrayLoader
{
private:
/** Specifies the parent of a possible input element.*/
enum InputParent
{
INPUT_PARENT_UNKNOWN,
INPUT_PARENT_JOINTS,
INPUT_PARENT_VERTEX_WEIGHTS
};
/** Types of controllers that can be loaded by this class.*/
enum ControllerTypes
{
UNKNOWN_CONTROLLER,
SKIN_CONTROLLER,
MORPH_CONTROLLER
};
typedef std::map< String /*Id of the name array*/, StringList> StringListMap;
private:
/** The type of the controller currently being parsed.*/
ControllerTypes mCurrentControllerType;
/** The original object id, if it in the original file format exist. */
String mOriginalId;
/** The id of the current controller.*/
String mCurrentControllerId;
/** The id of the current controller source.*/
COLLADAFW::UniqueId mCurrentControllerSourceUniqueId;
/** The name of the current controller.*/
String mCurrentControllerName;
/** The SkinControllerData currently being filled. */
COLLADAFW::SkinControllerData* mCurrentSkinControllerData;
/** The MorphController currently being filled. */
COLLADAFW::MorphController* mCurrentMorphController;
/** The current parent element of a possible input element. Unknown if input is
currently not allowed.*/
InputParent mCurrentInputParent;
/** The sids of the joints of the current skin controller.*/
StringList *mJointSidsOrIds;
/** Maps ids of name array to the list of name in the name array.*/
StringListMap mJointSidsMap;
/** Maps ids of id_ref array to the list of ids in the id_ref array.*/
StringListMap mJointIdsMap;
/** The expected joints/vertex pair count of the current skin data.*/
size_t mCurrentJointsVertexPairCount;
/** The offset of the joints in the current vertex_weights element.*/
uint64 mJointOffset;
/** The offset of the weights in the current vertex_weights element.*/
uint64 mWeightsOffset;
/** The largest offset of the inputs in the current vertex_weights element.*/
uint64 mCurrentMaxOffset;
/** The current offset while parsing a v element.*/
uint64 mCurrentOffset;
/** The bind shape matrix of the current skin controller.*/
COLLADABU::Math::Matrix4 mCurrentBindShapeMatrix;
/** The index of the current matrix element, while parsing the bind_shape_matrix element.*/
size_t mCurrentMatrixIndex;
/** Used to control if validate function should report errors
or do its job silently */
bool mVerboseValidate;
public:
/** Constructor. */
LibraryControllersLoader( IFilePartLoader* callingFilePartLoader );
/** Destructor. */
virtual ~LibraryControllersLoader();
/** Returns the unique id of the current parsed object. */
virtual const COLLADAFW::UniqueId& getUniqueId();
/** Write the indices of the v element into the framework.*/
bool writeVIndices ( const sint64* data, size_t length );
/** Sets the String list, the values of an id_ref or name_array should be stored in.
@param isIdArray If true, values are stored in idMap otherwise in in sid map*/
bool beginJointsArray(bool isIdArray);
bool dataJointArray( const ParserString* data, size_t length );
virtual bool end__library_controllers( );
virtual bool begin__controller( const controller__AttributeData& attributeData );
virtual bool end__controller();
virtual bool begin__skin( const skin__AttributeData& attributeData );
virtual bool end__skin();
virtual bool begin__morph( const morph__AttributeData& attributeData );
virtual bool end__morph();
bool begin__source( const source__AttributeData& attributes );
bool end__source();
virtual bool begin__joints();
virtual bool end__joints();
/** Evaluate the semantic and assign the corresponding sources to the current animation curve.*/
bool begin__input____InputLocal( const input____InputLocal__AttributeData& attributeData );
/** We don't need to do anything here.*/
bool end__input____InputLocal() {return true;}
virtual bool begin__vertex_weights( const vertex_weights__AttributeData& attributeData );
virtual bool end__vertex_weights();
virtual bool begin__input____InputLocalOffset( const input____InputLocalOffset__AttributeData& attributeData );
virtual bool end__input____InputLocalOffset();
virtual bool begin__vcount();
virtual bool end__vcount();
virtual bool data__vcount( const unsigned long long*, size_t length );
virtual bool begin__v();
virtual bool end__v();
virtual bool data__v( const sint64* data, size_t length );
virtual bool begin__Name_array( const Name_array__AttributeData& attributeData );
virtual bool end__Name_array();
virtual bool data__Name_array( const ParserString* data, size_t length );
virtual bool begin__IDREF_array( const IDREF_array__AttributeData& attributeData );
virtual bool end__IDREF_array();
virtual bool data__IDREF_array( const ParserString* value, size_t length );
virtual bool begin__bind_shape_matrix(){return true;}
virtual bool end__bind_shape_matrix();
virtual bool data__bind_shape_matrix( const float* data, size_t length );
private:
/** Disable default copy ctor. */
LibraryControllersLoader( const LibraryControllersLoader& pre );
/** Disable default assignment operator. */
const LibraryControllersLoader& operator= ( const LibraryControllersLoader& pre );
};
} // namespace COLLADASAXFWL
#endif // __COLLADASAXFWL_LIBRARYCONTROLLERSLOADER_H__
|