2
Copyright (c) 2008-2009 NetAllied Systems GmbH
4
This file is part of COLLADASaxFrameworkLoader.
6
Licensed under the MIT Open Source License,
7
for details please see LICENSE file or the website
8
http://www.opensource.org/licenses/mit-license.php
11
#include "COLLADASaxFWLStableHeaders.h"
12
#include "COLLADASaxFWLKinematicsIntermediateData.h"
13
#include "COLLADASaxFWLUtils.h"
15
#include "COLLADAFWJoint.h"
18
namespace COLLADASaxFWL
21
//------------------------------
22
KinematicsModel::KinematicsModel( const COLLADABU::URI& url, const char* name )
29
//------------------------------
30
KinematicsModel::~KinematicsModel()
33
deleteVector(mBaseLinks);
36
//------------------------------
37
KinematicsIntermediateData::KinematicsIntermediateData()
42
//------------------------------
43
KinematicsBind::KinematicsBind( ValueType valueType ) : mValueType(valueType)
56
case VALUETYPE_SIDREF:
62
case VALUETYPE_UNKNOWN:
67
//------------------------------
68
KinematicsBind::KinematicsBind( ) : mValueType(VALUETYPE_UNKNOWN)
71
//------------------------------
72
KinematicsInstanceArticulatedSystem::~KinematicsInstanceArticulatedSystem()
74
// delete kinematic binds
75
deleteVector(mKinematicsBinds);
78
//------------------------------
79
KinematicsIntermediateData::~KinematicsIntermediateData()
82
deleteVectorFW(mJoints);
84
// delete joint instances
85
deleteVectorFW(mInstanceJoints);
87
// delete kinematic models
88
deleteMap(mKinematicsModels);
90
// delete kinematic controllers
91
deleteMap(mKinematicsControllers);
93
// delete instance kinematics scenes
94
deleteVector(mInstanceKinematicsScenes);
97
//------------------------------
98
KinematicsScene::~KinematicsScene()
100
// delete kinematics instance articulated systems
101
deleteVector(mKinematicsInstanceArticulatedSystems);
104
//------------------------------
105
void KinematicsScene::addInstanceArticulatedSystem( KinematicsInstanceArticulatedSystem* kinematicsInstanceArticulatedSystem )
107
mKinematicsInstanceArticulatedSystems.push_back( kinematicsInstanceArticulatedSystem );
110
//------------------------------
111
KinematicsSidrefOrParam::KinematicsSidrefOrParam( ValueType axisType )
113
switch ( mValueType )
115
case VALUETYPE_SIDREF:
118
case VALUETYPE_PARAM:
121
case VALUETYPE_UNKNOWN:
126
//------------------------------
127
void KinematicsSidrefOrParam::setParamValue( const String& paramValue )
130
mValue._param = new String(paramValue);
131
mValueType = VALUETYPE_PARAM;
134
//------------------------------
135
void KinematicsSidrefOrParam::setSidrefValue( const SidAddress& sidrefValue )
138
mValue._sidref = new SidAddress(sidrefValue);
139
mValueType = VALUETYPE_SIDREF;
142
//------------------------------
143
void KinematicsSidrefOrParam::deleteSidRef()
145
if ( mValueType == VALUETYPE_SIDREF)
147
delete mValue._sidref;
152
//------------------------------
153
void KinematicsSidrefOrParam::deleteParam()
155
if ( mValueType == VALUETYPE_PARAM)
157
delete mValue._param;
162
//------------------------------
163
void KinematicsSidrefOrParam::deleteAll()
169
//------------------------------
170
KinematicsFloatOrParam::KinematicsFloatOrParam( ValueType axisType )
172
switch ( mValueType )
174
case VALUETYPE_FLOAT:
175
mValue._float = std::numeric_limits<float>::quiet_NaN();
177
case VALUETYPE_PARAM:
180
case VALUETYPE_UNKNOWN:
185
//------------------------------
186
KinematicsInstanceKinematicsScene::~KinematicsInstanceKinematicsScene()
188
// delete BindJointAxes
189
deleteVector(mBindJointAxes);
192
//------------------------------
193
void KinematicsInstanceKinematicsModel::addKinematicsNewParam( KinematicsNewParam* newParam )
195
const String& name = newParam->getName();
196
mKinematicsNewParams.insert(std::make_pair(name, newParam));
199
//------------------------------
200
KinematicsNewParam* KinematicsInstanceKinematicsModel::getNewParamBySid( const String& sid ) const
202
KinematicsNewParams::const_iterator it = mKinematicsNewParams.find(sid);
203
if ( it != mKinematicsNewParams.end() )
213
} // namespace COLLADASaxFWL