1 /*
2     Copyright (c) 2008-2009 NetAllied Systems GmbH
3 
4     This file is part of COLLADASaxFrameworkLoader.
5 
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
9 */
10 
11 #include "COLLADASaxFWLStableHeaders.h"
12 #include "COLLADASaxFWLInstanceKinematicsModelLoader.h"
13 #include "COLLADASaxFWLKinematicsIntermediateData.h"
14 
15 
16 namespace COLLADASaxFWL
17 {
18 
19     //------------------------------
InstanceKinematicsModelLoader()20 	InstanceKinematicsModelLoader::InstanceKinematicsModelLoader()
21 		:  mCurrentKinematicsInstanceKinematicsModel(0)
22 		, mCurrentKinematicsNewParam(0)
23 	{
24 	}
25 
26     //------------------------------
~InstanceKinematicsModelLoader()27 	InstanceKinematicsModelLoader::~InstanceKinematicsModelLoader()
28 	{
29 	}
30 
31 	//------------------------------
begin__newparam____kinematics_newparam_type(const newparam____kinematics_newparam_type__AttributeData & attributeData)32 	bool InstanceKinematicsModelLoader::begin__newparam____kinematics_newparam_type( const newparam____kinematics_newparam_type__AttributeData& attributeData )
33 	{
34 		if ( attributeData.sid )
35 		{
36 			mCurrentKinematicsNewParamSid = attributeData.sid;
37 		}
38 		return true;
39 	}
40 
41 	//------------------------------
end__newparam____kinematics_newparam_type()42 	bool InstanceKinematicsModelLoader::end__newparam____kinematics_newparam_type()
43 	{
44 		if ( mCurrentKinematicsInstanceKinematicsModel )
45 		{
46 			mCurrentKinematicsInstanceKinematicsModel->addKinematicsNewParam(mCurrentKinematicsNewParam);
47 		}
48 		mCurrentKinematicsNewParamSid.clear();
49 		mCurrentKinematicsNewParam = 0;
50 		return true;
51 	}
52 
53 	//-----------------------------------------------------------------
begin__float()54 	bool InstanceKinematicsModelLoader::begin__float()
55 	{
56 		mCurrentKinematicsNewParam = new KinematicsNewParam(KinematicsNewParam::VALUETYPE_FLOAT);
57 		mCurrentKinematicsNewParam->setName(mCurrentKinematicsNewParamSid);
58 		return true;
59 	}
60 
61 	//-----------------------------------------------------------------
end__float()62 	bool InstanceKinematicsModelLoader::end__float()
63 	{
64 		return true;
65 	}
66 
67 	//-----------------------------------------------------------------
data__float(float value)68 	bool InstanceKinematicsModelLoader::data__float( float value )
69 	{
70 		mCurrentKinematicsNewParam->setDoubleValue( value );
71 		return true;
72 	}
73 
74 	//-----------------------------------------------------------------
begin__int()75 	bool InstanceKinematicsModelLoader::begin__int()
76 	{
77 		mCurrentKinematicsNewParam = new KinematicsNewParam(KinematicsNewParam::VALUETYPE_INT);
78 		mCurrentKinematicsNewParam->setName(mCurrentKinematicsNewParamSid);
79 		return true;
80 	}
81 
82 	//-----------------------------------------------------------------
end__int()83 	bool InstanceKinematicsModelLoader::end__int()
84 	{
85 		return true;
86 	}
87 
88 	//-----------------------------------------------------------------
data__int(int value)89 	bool InstanceKinematicsModelLoader::data__int( int value )
90 	{
91 		mCurrentKinematicsNewParam->setIntValue( value );
92 		return true;
93 	}
94 
95 	//-----------------------------------------------------------------
begin__bool()96 	bool InstanceKinematicsModelLoader::begin__bool()
97 	{
98 		mCurrentKinematicsNewParam = new KinematicsNewParam(KinematicsNewParam::VALUETYPE_BOOL);
99 		mCurrentKinematicsNewParam->setName(mCurrentKinematicsNewParamSid);
100 		return true;
101 	}
102 
103 	//-----------------------------------------------------------------
end__bool()104 	bool InstanceKinematicsModelLoader::end__bool()
105 	{
106 		return true;
107 	}
108 
109 	//-----------------------------------------------------------------
data__bool(bool value)110 	bool InstanceKinematicsModelLoader::data__bool( bool value )
111 	{
112 		mCurrentKinematicsNewParam->setBoolValue( value );
113 		return true;
114 	}
115 
116 	//-----------------------------------------------------------------
begin__SIDREF()117 	bool InstanceKinematicsModelLoader::begin__SIDREF()
118 	{
119 		mCurrentKinematicsNewParam = new KinematicsNewParam(KinematicsNewParam::VALUETYPE_SIDREF);
120 		mCurrentKinematicsNewParam->setName(mCurrentKinematicsNewParamSid);
121 		return true;
122 	}
123 
124 	//-----------------------------------------------------------------
end__SIDREF()125 	bool InstanceKinematicsModelLoader::end__SIDREF()
126 	{
127 		mCurrentKinematicsNewParam->setSidrefValue( mSidRefString );
128 		mSidRefString.clear();
129 		return true;
130 	}
131 
132 	//-----------------------------------------------------------------
data__SIDREF(const ParserChar * value,size_t length)133 	bool InstanceKinematicsModelLoader::data__SIDREF( const ParserChar* value, size_t length )
134 	{
135 		mSidRefString.append( value, length );
136 		return true;
137 	}
138 
139 
140 
141 } // namespace COLLADASaxFWL
142