Choreonoid  1.5
DaeNode.h
Go to the documentation of this file.
1 
7 #ifndef CNOID_UTIL_DAE_NODE_H_INCLUDED
8 #define CNOID_UTIL_DAE_NODE_H_INCLUDED
9 
10 #include "Referenced.h"
11 #include <cnoid/EigenTypes>
12 #include <boost/shared_ptr.hpp>
13 
14 namespace cnoid {
15 
16 // Introduction. SceneGraph switches the float and double in SgFloat. And the type of eigen also switched.
17 // But, Link does not receive that type. To that end, I will use the type double(Maximum accuracy) in DaeNode.
18 
19 typedef std::vector<double> DaeVectorXArray;
20 typedef boost::shared_ptr<DaeVectorXArray> DaeVectorXArrayPtr;
21 typedef std::map<std::string, DaeVectorXArrayPtr> DaeVectorMap;
22 
26 class Dae : public Referenced
27 {
28 public:
29  Dae() : id("") {}
30 
31 public:
32  // All nodes must have a "UNIQUE" id always.
33  std::string id;
34 };
35 
36 
40 class DaeTexture : public Dae
41 {
42 public:
43  DaeTexture(std::string targetName) : fileName_(targetName) {}
44  std::string fileName() { return fileName_; }
45 
46 protected:
47  std::string fileName_;
48 
49 };
51 typedef std::map<std::string, DaeTexturePtr> DaeTextures;
52 typedef std::vector<Vector3> Vector3s;
53 
57 class DaeTransform : public Dae
58 {
59 public:
60  DaeTransform() : translate(Vector3(0.0, 0.0, 0.0)),
61  scale (Vector3(1.0, 1.0, 1.0)),
62  center (Vector3(0.0, 0.0, 0.0)),
63  rotate (AngleAxis(0.0, Vector3(0, 0, 0))),
64  affine (NULL),
65  matrix (NULL) {}
67  {
68  // affine is the value using the rotation matrix from the parent node.
69  if (affine) delete affine;
70  if (matrix) delete matrix;
71  }
72 
73 public:
74  // Not compatible with the SceneGraph to Link. Therefore, I use the double type.
76  Vector3s translates;
82 #ifdef _INVALID_VERSION
83  Affine3d parents;
84 #endif
85  Affine3d* retention;
86 
87 };
89 
90 
94 class DaeEffect : public Dae
95 {
96 public:
97  DaeEffect() : refImageId (""),
98  effectId (""),
99  emission (Vector3(0.0, 0.0, 0.0)),
100  ambient (0.0),
101  diffuse (Vector3(1.0, 1.0, 1.0)),
102  specular (Vector3(0.0, 0.0, 0.0)),
103  shininess (0.0),
104  transparency(0.0) {}
105 public:
106  // !!! important !!!
107  // I held in the variable of the prefix ref is the url attribute and the target attribute of all.
108  std::string refImageId;
109 
110  std::string effectId;
112  double ambient;
115  double shininess;
116  double transparency;
117 };
119 typedef std::map<std::string, DaeEffectPtr> DaeEffects;
120 
121 
125 class DaeMaterial : public Dae
126 {
127 public:
128  DaeMaterial() : materialId (""),
129  refEffectId("") {}
130 public:
131  std::string materialId;
132  std::string refEffectId;
133 };
135 typedef std::map<std::string, DaeMaterialPtr> DaeMaterials;
136 typedef std::map<std::string, std::string> DaeMaterialRef;
137 
138 
142 class DaeMesh : public Dae
143 {
144 public:
145  DaeMesh() : refVerticesId (""),
146  refNormalsId (""),
147  refColorId (""),
148  refTexcoordId (""),
149  refMaterialId ("")
150  {
151  // mesh is equivalent to polylist and lines and triangles of collada.
152  // This means that I will have the index and the number of vertices.
153  // I also hold such as vertex coordinates of the source tag further. (For ease of processing)
154  vcount = DaeVectorXArrayPtr(new DaeVectorXArray);
155  vertices = DaeVectorXArrayPtr(new DaeVectorXArray);
156  normals = DaeVectorXArrayPtr(new DaeVectorXArray);
157  colors = DaeVectorXArrayPtr(new DaeVectorXArray);
158  texcoords = DaeVectorXArrayPtr(new DaeVectorXArray);
159 
160  verticesIndexes = DaeVectorXArrayPtr(new DaeVectorXArray);
161  normalsIndexes = DaeVectorXArrayPtr(new DaeVectorXArray);
162  colorsIndexes = DaeVectorXArrayPtr(new DaeVectorXArray);
163  texcoordsIndexes = DaeVectorXArrayPtr(new DaeVectorXArray);
164  }
165 
166 public:
167  std::string refVerticesId;
168  std::string refNormalsId;
169  std::string refColorId;
170  std::string refTexcoordId;
171  std::string refMaterialId;
172 
173  DaeVectorXArrayPtr vcount;
174 
175  DaeVectorXArrayPtr vertices;
176  DaeVectorXArrayPtr normals;
177  DaeVectorXArrayPtr colors;
178  DaeVectorXArrayPtr texcoords;
179 
180  DaeVectorXArrayPtr verticesIndexes;
181  DaeVectorXArrayPtr normalsIndexes;
182  DaeVectorXArrayPtr colorsIndexes;
183  DaeVectorXArrayPtr texcoordsIndexes;
184 };
186 typedef std::vector<DaeMeshPtr> DaeMeshes;
187 
188 
192 class DaeGeometry : public Dae
193 {
194 public:
195  DaeGeometry() : geometryId (""),
196  refMaterialId("") {}
197 public:
198  std::string geometryId;
199  std::string refMaterialId;
200 
201  DaeMeshes meshes;
202 };
204 typedef std::map<std::string, DaeGeometryPtr> DaeGeometries;
205 
206 class DaeNode;
208 typedef std::map<std::string, DaeNodePtr> DaeNodes;
209 typedef std::vector< std::pair<std::string, DaeNodePtr> > DaeNodeStack;
210 
211 
215 class DaeNode : public Dae
216 {
217 public:
218  DaeNode() : refNodeId(""),
219  refName (""),
220  parent (NULL),
221  type (-1) {}
222 public:
223  std::string name;
224  std::string refNodeId;
225  std::string refName;
226 
227  DaeNodePtr parent;
229  DaeGeometries geometries;
230  DaeNodeStack stack;
231  DaeNodes children;
232  int type;
233 
234  DaeNodePtr clone();
235 
236 protected:
237  void addChild(DaeNodePtr node);
238 };
239 
240 
244 class DaeShape : public DaeNode
245 {
246 public:
248 
249  DaeShape() { format(); }
250 
251  // If the graphic primitive, if specified in the rigid body, I will use that figure.
252  class Box {
253  public:
254  bool presence;
256  };
257  class Sphere {
258  public:
259  bool presence;
260  double radius;
261  };
262  class Cylinder {
263  public:
264  bool presence;
265  double height;
266  double radius;
267  };
268  class Cone {
269  public:
270  bool presence;
271  double height;
274  };
275  class Polygon {
276  public:
277  bool presence;
278  DaeGeometryPtr geometry;
279  };
280 
281  bool isPresence() {
282  // Graphic primitive is assumed to be only one.
283  return (box.presence || sphere.presence || cylinder.presence || cone.presence || polygon.presence);
284  }
285 
286  void setBox(Vector3 ext) {
287  format();
288  box.presence = true;
289  box.halfExtents = ext;
290  }
291  void setSphere(double radius) {
292  format();
293  sphere.presence = true;
294  sphere.radius = radius;
295  }
296  void setCylinder(double height, double radius) {
297  format();
298  cylinder.presence = true;
299  cylinder.height = height;
300  cylinder.radius = radius;
301  }
302  void setCone(double height, const Vector2& radius1, const Vector2& radius2) {
303  format();
304  cone.presence = true;
305  cone.height = height;
306  cone.radius1 = radius1;
307  cone.radius2 = radius2;
308  }
309  void setPolygon(DaeGeometryPtr geometry) {
310  format();
311  polygon.presence = true;
312  polygon.geometry = geometry;
313  }
314  void format() {
315  box.presence = false;
316  sphere.presence = false;
317  cylinder.presence = false;
318  cone.presence = false;
319  polygon.presence = false;
320  refMaterialId = "";
321  }
322 
323 public:
329 
330  std::string refMaterialId;
331 };
333 typedef std::vector<DaeShapePtr> DaeShapes;
334 
335 
339 class DaeMassFrame : public DaeNode
340 {
341  // This is to just keep rottion and angles.
342 };
344 
345 
349 class DaeRigid : public DaeNode
350 {
351 public:
352  DaeRigid() : mass(0.0),
353  inertia(Vector3(0.0, 0.0, 0.0)) {}
354 public:
355  double mass;
357 
358  DaeShapes shapes;
359  DaeMassFramePtr massFrame;
360 };
362 typedef std::map<std::string, DaeRigidPtr> DaeRigids;
363 typedef std::map<std::string, std::string> DaeRigidRelations;
364 
365 
369 class DaeRevolute : public Dae { // this is just the child of joint-value.
370 public:
371  DaeRevolute() : axis(Vector3(0.0, 0.0, 0.0)),
372  limitMin(0),
373  limitMax(0) {}
374 public:
376  double limitMin;
377  double limitMax;
378 };
379 
381 typedef std::map<std::string, DaeRevolutePtr> DaeRevolutes;
382 typedef std::vector<DaeRevolutePtr> DaeRevoluteChildren;
383 
384 typedef std::vector<std::string> DaeLinkChildren;
385 typedef std::vector<std::string> DaeJointChildren;
386 
387 
391 class DaeActuator : public DaeNode
392 {
393 public:
394  DaeActuator() : assignedPowerRating(1.0),
395  maxSpeed (0.0),
396  noLoadSpeed (0.0),
397  nominalTorque (0.0),
398  nominalVoltage (0.0),
399  rotorInertia (0.0),
400  speedConstant (0.0),
401  speedTorqueGradient(0.0),
402  startingCurrent (0.0),
403  terminalResistance (0.0),
404  torqueConstant (1.0) {}
405 public:
407  double maxSpeed;
408  double noLoadSpeed;
411  double rotorInertia;
417 };
419 typedef std::map<std::string, DaeActuatorPtr> DaeActuators;
420 typedef std::map<std::string, std::string> DaeActuatorRelations;
421 
422 
426 class DaeSensor : public DaeNode
427 {
428 public:
429  DaeSensor() : type (""),
430  focalLength (0.0),
431  intrinsic (VectorXd::Zero(6)),
432  imageDimensions(VectorXd::Zero(3)),
433  measurementTime(0.0) {}
434 public:
435  std::string type;
436  double focalLength;
437  VectorXd intrinsic;
440 };
442 typedef std::map<std::string, DaeSensorPtr> DaeSensors;
443 typedef std::vector<DaeSensor*> DaeResultSensors;
444 typedef boost::shared_ptr<DaeResultSensors> DaeResultSensorsPtr;
445 typedef std::vector< std::pair<std::string, std::string> > DaeSensorRelations;
446 
447 
452 {
453 public:
454  DaeAttachActuator() : instanceActuator(""),
455  bindActuator ("") {}
456 public:
457  std::string instanceActuator;
458  std::string bindActuator;
459 };
461 
462 
466 class DaeAttachSensor : public DaeNode
467 {
468 public:
469  DaeAttachSensor() : instanceSensor(""),
470  frameOrigin ("") {}
471 public:
472  std::string instanceSensor;
473  std::string frameOrigin;
474 };
476 
477 
481 class DaeLink : public DaeNode // This is a not Dae, this is a NODE value in collada.
482 {
483 public:
484  DaeLink() : name("") {}
485 public:
486  std::string name;
487 
488  // transform different with the "LINK" and "NODE" is given in collada.
489  // To do this, management information as them differently.
491 
492  // This is same as attachment_full-tag. That values are joint-id.
493  DaeJointChildren children;
494 };
496 typedef std::map<std::string, DaeLinkPtr> DaeLinks;
497 
498 
502 class DaeJoint : public DaeNode // This is not a Dae, this is a NODE value in collada.
503 {
504 public:
505  DaeJoint() : name("")
506  {
507  transform = new DaeTransform;
508  }
509 
510 public:
511  // The id value contains the name of the parent model. (ex. kinamaticmodel/thisid)
512  std::string name;
513 
514  // transform different with the "JOINT" and "NODE" is given in collada.
515  // To do this, management information as them differently.
516  DaeTransformPtr transform;
517  DaeRevoluteChildren revolutes;
518  DaeJointChildren children;
519 };
521 typedef std::map<std::string, DaeJointPtr> DaeJoints;
522 
523 
524 }; //end of namespace
525 
526 #endif
std::vector< Vector3 > Vector3s
Definition: DaeNode.h:52
std::map< std::string, DaeNodePtr > DaeNodes
Definition: DaeNode.h:208
std::string refName
Definition: DaeNode.h:225
Sphere sphere
Definition: DaeNode.h:325
bool presence
Definition: DaeNode.h:277
Vector3 center
Definition: DaeNode.h:78
Eigen::AngleAxisd AngleAxis
Definition: EigenTypes.h:66
Definition: DaeNode.h:252
Cylinder cylinder
Definition: DaeNode.h:326
double height
Definition: DaeNode.h:265
DaeRevolute()
Definition: DaeNode.h:371
boost::shared_ptr< DaeResultSensors > DaeResultSensorsPtr
Definition: DaeNode.h:444
ref_ptr< DaeActuator > DaeActuatorPtr
Definition: DaeNode.h:418
It will hold the information of SgMaterial for 3D shape model.
Definition: DaeNode.h:125
Cone cone
Definition: DaeNode.h:327
std::string refMaterialId
Definition: DaeNode.h:199
ref_ptr< DaeTransform > DaeTransformPtr
Definition: DaeNode.h:88
ref_ptr< DaeTexture > DaeTexturePtr
Definition: DaeNode.h:50
DaeSensor()
Definition: DaeNode.h:429
double terminalResistance
Definition: DaeNode.h:415
std::map< std::string, DaeEffectPtr > DaeEffects
Definition: DaeNode.h:119
DaeVectorXArrayPtr vcount
Definition: DaeNode.h:173
std::vector< std::string > DaeJointChildren
Definition: DaeNode.h:385
It will hold the information of SgTexture for 3D shape model.
Definition: DaeNode.h:40
It will hold the information for Kinematics.
Definition: DaeNode.h:426
Eigen::Matrix4d Matrix4
Definition: EigenTypes.h:60
double transparency
Definition: DaeNode.h:116
ref_ptr< DaeShape > DaeShapePtr
Definition: DaeNode.h:332
std::string refImageId
Definition: DaeNode.h:108
double focalLength
Definition: DaeNode.h:436
This is the base class of the dae parser. (In order to share a pointer for all bjects) ...
Definition: DaeNode.h:26
double torqueConstant
Definition: DaeNode.h:416
DaeVectorXArrayPtr normals
Definition: DaeNode.h:176
Polygon polygon
Definition: DaeNode.h:328
DaeNodes children
Definition: DaeNode.h:231
std::string bindActuator
Definition: DaeNode.h:458
Matrix4 * matrix
Definition: DaeNode.h:81
Vector3 specular
Definition: DaeNode.h:114
ref_ptr< DaeRigid > DaeRigidPtr
Definition: DaeNode.h:361
ref_ptr< DaeNode > DaeNodePtr
Definition: DaeNode.h:206
It will hold the information of SgGeometry for 3D shape model.
Definition: DaeNode.h:192
Vector3s translates
Definition: DaeNode.h:76
DaeMaterial()
Definition: DaeNode.h:128
bool presence
Definition: DaeNode.h:264
int type
Definition: DaeNode.h:232
ref_ptr< DaeLink > DaeLinkPtr
Definition: DaeNode.h:495
void setPolygon(DaeGeometryPtr geometry)
Definition: DaeNode.h:309
std::string geometryId
Definition: DaeNode.h:198
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Definition: DaeNode.h:247
Definition: DaeNode.h:262
void format()
Definition: DaeNode.h:314
ref_ptr< DaeJoint > DaeJointPtr
Definition: DaeNode.h:520
DaeMesh()
Definition: DaeNode.h:145
std::string refEffectId
Definition: DaeNode.h:132
Eigen::Affine3d Affine3
Definition: EigenTypes.h:64
DaeNodeStack stack
Definition: DaeNode.h:230
ref_ptr< DaeGeometry > DaeGeometryPtr
Definition: DaeNode.h:203
std::string fileName_
Definition: DaeNode.h:47
It will hold the information for Kinematics.
Definition: DaeNode.h:466
std::map< std::string, std::string > DaeActuatorRelations
Definition: DaeNode.h:420
Definition: Referenced.h:67
Box box
Definition: DaeNode.h:324
bool presence
Definition: DaeNode.h:254
DaeTexture(std::string targetName)
Definition: DaeNode.h:43
double nominalVoltage
Definition: DaeNode.h:410
Vector3 inertia
Definition: DaeNode.h:356
std::map< std::string, DaeRevolutePtr > DaeRevolutes
Definition: DaeNode.h:381
It will hold the information of primitive figure for physics.
Definition: DaeNode.h:339
std::string name
Definition: DaeNode.h:223
double mass
Definition: DaeNode.h:355
ref_ptr< DaeMaterial > DaeMaterialPtr
Definition: DaeNode.h:134
double measurementTime
Definition: DaeNode.h:439
std::map< std::string, DaeSensorPtr > DaeSensors
Definition: DaeNode.h:442
DaeVectorXArrayPtr texcoords
Definition: DaeNode.h:178
It will hold the information for Kinematics.
Definition: DaeNode.h:451
boost::shared_ptr< DaeVectorXArray > DaeVectorXArrayPtr
Definition: DaeNode.h:20
void setCone(double height, const Vector2 &radius1, const Vector2 &radius2)
Definition: DaeNode.h:302
std::string fileName()
Definition: DaeNode.h:44
DaeAttachSensor()
Definition: DaeNode.h:469
std::map< std::string, std::string > DaeRigidRelations
Definition: DaeNode.h:363
Definition: Referenced.h:128
std::vector< DaeRevolutePtr > DaeRevoluteChildren
Definition: DaeNode.h:382
VectorXd intrinsic
Definition: DaeNode.h:437
DaeVectorXArrayPtr colorsIndexes
Definition: DaeNode.h:182
std::map< std::string, std::string > DaeMaterialRef
Definition: DaeNode.h:136
It will hold the information of primitive figure for physics.
Definition: DaeNode.h:244
It will hold the information for Kinematics.
Definition: DaeNode.h:369
Affine3 * affine
Definition: DaeNode.h:80
DaeVectorXArrayPtr normalsIndexes
Definition: DaeNode.h:181
Vector2 radius1
Definition: DaeNode.h:272
It will hold the information for Kinematics.
Definition: DaeNode.h:391
DaeShape()
Definition: DaeNode.h:249
DaeGeometry()
Definition: DaeNode.h:195
std::map< std::string, DaeMaterialPtr > DaeMaterials
Definition: DaeNode.h:135
ref_ptr< DaeMesh > DaeMeshPtr
Definition: DaeNode.h:185
DaeRevoluteChildren revolutes
Definition: DaeNode.h:517
double nominalTorque
Definition: DaeNode.h:409
double radius
Definition: DaeNode.h:266
DaeRigid()
Definition: DaeNode.h:352
std::vector< std::pair< std::string, std::string > > DaeSensorRelations
Definition: DaeNode.h:445
DaeNodePtr parent
Definition: DaeNode.h:227
std::vector< DaeShapePtr > DaeShapes
Definition: DaeNode.h:333
double speedTorqueGradient
Definition: DaeNode.h:413
Vector3 diffuse
Definition: DaeNode.h:113
DaeVectorXArrayPtr texcoordsIndexes
Definition: DaeNode.h:183
Affine3d * retention
Definition: DaeNode.h:85
std::string refColorId
Definition: DaeNode.h:169
std::string effectId
Definition: DaeNode.h:110
std::string materialId
Definition: DaeNode.h:131
std::vector< std::pair< std::string, DaeNodePtr > > DaeNodeStack
Definition: DaeNode.h:209
std::map< std::string, DaeRigidPtr > DaeRigids
Definition: DaeNode.h:362
std::vector< DaeSensor * > DaeResultSensors
Definition: DaeNode.h:443
std::string refVerticesId
Definition: DaeNode.h:167
std::map< std::string, DaeJointPtr > DaeJoints
Definition: DaeNode.h:521
bool isPresence()
Definition: DaeNode.h:281
DaeVectorXArrayPtr colors
Definition: DaeNode.h:177
DaeMeshes meshes
Definition: DaeNode.h:201
std::vector< double > DaeVectorXArray
Definition: DaeNode.h:19
std::string frameOrigin
Definition: DaeNode.h:473
Dae()
Definition: DaeNode.h:29
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
bool presence
Definition: DaeNode.h:270
ref_ptr< DaeRevolute > DaeRevolutePtr
Definition: DaeNode.h:380
ref_ptr< DaeAttachActuator > DaeAttachActuatorPtr
Definition: DaeNode.h:460
DaeVectorXArrayPtr verticesIndexes
Definition: DaeNode.h:180
ref_ptr< DaeMassFrame > DaeMassFramePtr
Definition: DaeNode.h:343
std::string type
Definition: DaeNode.h:435
Vector3 imageDimensions
Definition: DaeNode.h:438
double shininess
Definition: DaeNode.h:115
~DaeTransform()
Definition: DaeNode.h:66
double maxSpeed
Definition: DaeNode.h:407
Vector3 axis
Definition: DaeNode.h:375
double limitMin
Definition: DaeNode.h:376
DaeGeometries geometries
Definition: DaeNode.h:229
This is the base class of the dae parser.
Definition: DaeNode.h:215
Definition: DaeNode.h:275
DaeEffect()
Definition: DaeNode.h:97
double speedConstant
Definition: DaeNode.h:412
std::string instanceSensor
Definition: DaeNode.h:472
Eigen::Vector2d Vector2
Definition: EigenTypes.h:56
double height
Definition: DaeNode.h:271
std::string instanceActuator
Definition: DaeNode.h:457
DaeJointChildren children
Definition: DaeNode.h:518
Vector3 halfExtents
Definition: DaeNode.h:255
double ambient
Definition: DaeNode.h:112
ref_ptr< DaeSensor > DaeSensorPtr
Definition: DaeNode.h:441
double noLoadSpeed
Definition: DaeNode.h:408
std::string refMaterialId
Definition: DaeNode.h:171
Vector3 scale
Definition: DaeNode.h:77
double assignedPowerRating
Definition: DaeNode.h:406
std::map< std::string, DaeActuatorPtr > DaeActuators
Definition: DaeNode.h:419
std::vector< DaeMeshPtr > DaeMeshes
Definition: DaeNode.h:186
std::string refMaterialId
Definition: DaeNode.h:330
std::string refTexcoordId
Definition: DaeNode.h:170
std::vector< std::string > DaeLinkChildren
Definition: DaeNode.h:384
std::map< std::string, DaeVectorXArrayPtr > DaeVectorMap
Definition: DaeNode.h:21
DaeAttachActuator()
Definition: DaeNode.h:454
It will hold the information of SgMaterial for 3D shape model.
Definition: DaeNode.h:94
Eigen::Vector3d Vector3
Definition: EigenTypes.h:58
DaeActuator()
Definition: DaeNode.h:394
It will hold the information of SgGeometry for 3D shape model.
Definition: DaeNode.h:142
It will hold the information of primitive figure for physics.
Definition: DaeNode.h:349
It will hold the information for Kinematics.
Definition: DaeNode.h:502
std::string refNodeId
Definition: DaeNode.h:224
void setCylinder(double height, double radius)
Definition: DaeNode.h:296
DaeTransform transform
Definition: DaeNode.h:228
std::map< std::string, DaeTexturePtr > DaeTextures
Definition: DaeNode.h:51
void setBox(Vector3 ext)
Definition: DaeNode.h:286
DaeJoint()
Definition: DaeNode.h:505
DaeTransformPtr transform
Definition: DaeNode.h:516
double radius
Definition: DaeNode.h:260
DaeVectorXArrayPtr vertices
Definition: DaeNode.h:175
DaeNode()
Definition: DaeNode.h:218
double limitMax
Definition: DaeNode.h:377
std::string refNormalsId
Definition: DaeNode.h:168
double rotorInertia
Definition: DaeNode.h:411
Vector2 radius2
Definition: DaeNode.h:273
std::string name
Definition: DaeNode.h:512
Definition: DaeNode.h:268
DaeMassFramePtr massFrame
Definition: DaeNode.h:359
ref_ptr< DaeEffect > DaeEffectPtr
Definition: DaeNode.h:118
std::map< std::string, DaeLinkPtr > DaeLinks
Definition: DaeNode.h:496
AngleAxis rotate
Definition: DaeNode.h:79
DaeGeometryPtr geometry
Definition: DaeNode.h:278
ref_ptr< DaeAttachSensor > DaeAttachSensorPtr
Definition: DaeNode.h:475
std::map< std::string, DaeGeometryPtr > DaeGeometries
Definition: DaeNode.h:204
double startingCurrent
Definition: DaeNode.h:414
It will hold the information of SgTransform for 3D shape model and kinematics model.
Definition: DaeNode.h:57
Vector3 emission
Definition: DaeNode.h:111
Vector3 translate
Definition: DaeNode.h:75
std::string id
Definition: DaeNode.h:33
DaeShapes shapes
Definition: DaeNode.h:358
bool presence
Definition: DaeNode.h:259
Definition: DaeNode.h:257
DaeTransform()
Definition: DaeNode.h:60
void setSphere(double radius)
Definition: DaeNode.h:291