Choreonoid  1.1
VrmlNodes.h
[詳解]
1 
6 #ifndef CNOID_UTIL_VRMLNODES_H_INCLUDED
7 #define CNOID_UTIL_VRMLNODES_H_INCLUDED
8 
9 #include <map>
10 #include <string>
11 #include <bitset>
12 #include <boost/variant.hpp>
13 #include <boost/intrusive_ptr.hpp>
14 #include <Eigen/Core>
15 #include <Eigen/Geometry>
16 #include <Eigen/StdVector>
17 #include "exportdecl.h"
18 
19 namespace cnoid {
20 
21  typedef bool SFBool;
22  typedef int SFInt32;
23  typedef double SFFloat;
24  typedef std::string SFString;
25 
26  // Define SFTime as struct to clearly distinguish its type from SFFloat
27  struct SFTime {
28  double value;
29  inline SFTime() { value = 0.0; }
30  inline SFTime(double time) { value = time; }
31  inline double operator=(double time) { return (value = time); }
32  };
33 
34  typedef Eigen::Vector2d SFVec2f;
35  typedef Eigen::Vector3d SFVec3f;
36  typedef Eigen::Array3f SFColor;
37  typedef Eigen::AngleAxisd SFRotation;
38 
39  typedef struct {
40  int width;
41  int height;
43  std::vector<unsigned char> pixels;
44  } SFImage;
45 
46  typedef std::vector<SFInt32> MFInt32;
47  typedef std::vector<SFFloat> MFFloat;
48  typedef std::vector<SFVec2f, Eigen::aligned_allocator<SFVec2f> > MFVec2f;
49  typedef std::vector<SFVec3f> MFVec3f;
50  typedef std::vector<SFRotation> MFRotation;
51  typedef std::vector<SFTime> MFTime;
52  typedef std::vector<SFColor> MFColor;
53  typedef std::vector<SFString> MFString;
54 
55  // see 4.6.3 - 4.6.10 of the VRML97 specification
57 
58  ANY_NODE = -1,
59 
62 
67 
72 
79 
81 
84 
86  };
87 
88  class VrmlNode;
89 
90  inline void intrusive_ptr_add_ref(VrmlNode* obj);
91  inline void intrusive_ptr_release(VrmlNode* obj);
92 
95  {
96  public:
97 
98  VrmlNode();
99  virtual ~VrmlNode();
100 
101  std::string defName;
102 
103  bool isCategoryOf(VrmlNodeCategory category);
104 
105  protected:
106  std::bitset<NUM_VRML_NODE_CATEGORIES> categorySet;
107 
108  private:
109  int refCounter;
110 
111  friend void intrusive_ptr_add_ref(VrmlNode* obj);
112  friend void intrusive_ptr_release(VrmlNode* obj);
113  };
114 
115  inline void intrusive_ptr_add_ref(VrmlNode* obj){
116  obj->refCounter++;
117  }
118 
119  inline void intrusive_ptr_release(VrmlNode* obj){
120  obj->refCounter--;
121  if(obj->refCounter <= 0){
122  delete obj;
123  }
124  }
125 
126  typedef boost::intrusive_ptr<VrmlNode> VrmlNodePtr;
127 
128  typedef VrmlNodePtr SFNode;
129  typedef std::vector<SFNode> MFNode;
130 
131 
133  {
134  public:
135  VrmlUnsupportedNode(const std::string& nodeTypeName);
136  std::string nodeTypeName;
137  };
138  typedef boost::intrusive_ptr<VrmlUnsupportedNode> VrmlUnsupportedNodePtr;
139 
140 
143  {
144  public:
145  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
146 
147  VrmlViewpoint();
148 
149  SFRotation orientation;
150  SFFloat fieldOfView;
151  SFBool jump;
152  SFVec3f position;
153  SFString description;
154  };
155  typedef boost::intrusive_ptr<VrmlViewpoint> VrmlViewpointPtr;
156 
157 
160  {
161  public:
163 
164  MFFloat avatarSize;
165  SFBool headlight;
166  SFFloat speed;
167  MFString type;
169  };
170  typedef boost::intrusive_ptr<VrmlNavigationInfo> VrmlNavigationInfoPtr;
171 
172 
175  {
176  public:
177  VrmlBackground();
178 
179  MFFloat groundAngle;
180  MFColor groundColor;
181  MFFloat skyAngle;
182  MFColor skyColor;
183  MFString backUrl;
184  MFString bottomUrl;
185  MFString frontUrl;
186  MFString leftUrl;
187  MFString rightUrl;
188  MFString topUrl;
189  };
190  typedef boost::intrusive_ptr<VrmlBackground> VrmlBackgroundPtr;
191 
192 
194  {
195  public:
197 
198  virtual MFNode& getChildren() = 0;
199  virtual int countChildren() = 0;
200  virtual VrmlNode* getChild(int index) = 0;
201  virtual void replaceChild(int childIndex, VrmlNode* childNode) = 0;
202 
203  void removeChild(int childIndex);
204  };
205  typedef boost::intrusive_ptr<AbstractVrmlGroup> AbstractVrmlGroupPtr;
206 
207 
210  {
211  public:
212  VrmlGroup();
213 
214  virtual MFNode& getChildren();
215  virtual int countChildren();
216  virtual VrmlNode* getChild(int index);
217  virtual void replaceChild(int childIndex, VrmlNode* childNode);
218 
219  SFVec3f bboxCenter;
220  SFVec3f bboxSize;
221  MFNode children;
222  };
223  typedef boost::intrusive_ptr<VrmlGroup> VrmlGroupPtr;
224 
225 
228  {
229  public:
230  VrmlTransform();
231 
232  Eigen::Affine3d toAffine3d();
233 
234  SFVec3f center;
235  SFRotation rotation;
236  SFVec3f scale;
237  SFRotation scaleOrientation;
238  SFVec3f translation;
239  };
240  typedef boost::intrusive_ptr<VrmlTransform> VrmlTransformPtr;
241 
244  {
245  public:
246  VrmlInline();
247  MFString urls;
248  };
249  typedef boost::intrusive_ptr<VrmlInline> VrmlInlinePtr;
250 
251 
253  typedef boost::intrusive_ptr<VrmlAppearance> VrmlAppearancePtr;
254 
256  typedef boost::intrusive_ptr<VrmlGeometry> VrmlGeometryPtr;
257 
258 
261  {
262  public:
263  VrmlShape();
264  VrmlAppearancePtr appearance;
265  SFNode geometry;
266  };
267  typedef boost::intrusive_ptr<VrmlShape> VrmlShapePtr;
268 
269 
271  typedef boost::intrusive_ptr<VrmlMaterial> VrmlMaterialPtr;
272 
273  class VrmlTexture;
274  typedef boost::intrusive_ptr<VrmlTexture> VrmlTexturePtr;
275 
277  typedef boost::intrusive_ptr<VrmlTextureTransform> VrmlTextureTransformPtr;
278 
281  {
282  public:
283  VrmlAppearance();
284 
285  VrmlMaterialPtr material;
286  VrmlTexturePtr texture;
287  VrmlTextureTransformPtr textureTransform;
288  };
289 
290 
293  {
294  public:
295  VrmlMaterial();
296 
298  SFColor diffuseColor;
299  SFColor emissiveColor;
300  SFFloat shininess;
301  SFColor specularColor;
302  SFFloat transparency;
303  };
304 
305 
308  {
309  public:
310  VrmlTexture();
311  };
312 
313 
316  {
317  public:
319 
320  MFString url;
321  SFBool repeatS;
322  SFBool repeatT;
323  };
324  typedef boost::intrusive_ptr<VrmlImageTexture> VrmlImageTexturePtr;
325 
326 
329  {
330  public:
331  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
332 
334 
335  SFVec2f center;
336  SFFloat rotation;
337  SFVec2f scale;
338  SFVec2f translation;
339  };
340 
343  {
344  public:
345  VrmlGeometry();
346  };
347 
350  {
351  public:
352  VrmlBox();
353  SFVec3f size;
354  };
355  typedef boost::intrusive_ptr<VrmlBox> VrmlBoxPtr;
356 
357 
360  {
361  public:
362  VrmlCone();
363 
364  SFBool bottom;
365  SFFloat bottomRadius;
366  SFFloat height;
367  SFBool side;
368  };
369  typedef boost::intrusive_ptr<VrmlCone> VrmlConePtr;
370 
371 
374  {
375  public:
376  VrmlCylinder();
377 
378  SFBool bottom;
379  SFFloat height;
380  SFFloat radius;
381  SFBool side;
382  SFBool top;
383  };
384  typedef boost::intrusive_ptr<VrmlCylinder> VrmlCylinderPtr;
385 
386 
389  {
390  public:
391  VrmlSphere();
392  SFFloat radius;
393  };
394  typedef boost::intrusive_ptr<VrmlSphere> VrmlSpherePtr;
395 
396 
399  {
400  public:
401  VrmlFontStyle();
402 
403  MFString family;
404  SFBool horizontal;
405  MFString justify;
406  SFString language;
407  SFBool leftToRight;
408  SFFloat size;
409  SFFloat spacing;
410  SFString style;
411  SFBool topToBottom;
412  };
413  typedef boost::intrusive_ptr<VrmlFontStyle> VrmlFontStylePtr;
414 
415 
418  {
419  public:
420  VrmlText();
421 
422  MFString fstring;
423  VrmlFontStylePtr fontStyle;
424  MFFloat length;
425  SFFloat maxExtent;
426  };
427  typedef boost::intrusive_ptr<VrmlText> VrmlTextPtr;
428 
429 
430  class VrmlColor;
431  typedef boost::intrusive_ptr<VrmlColor> VrmlColorPtr;
432 
434  typedef boost::intrusive_ptr<VrmlCoordinate> VrmlCoordinatePtr;
435 
438  {
439  public:
441 
442  VrmlColorPtr color;
443  VrmlCoordinatePtr coord;
444  MFInt32 colorIndex;
446  MFInt32 coordIndex;
447  };
448  typedef boost::intrusive_ptr<VrmlIndexedLineSet> VrmlIndexedLineSetPtr;
449 
450 
451  class VrmlNormal;
452  typedef boost::intrusive_ptr<VrmlNormal> VrmlNormalPtr;
453 
455  typedef boost::intrusive_ptr<VrmlTextureCoordinate> VrmlTextureCoordinatePtr;
456 
457 
460  {
461  public:
463 
464  VrmlNormalPtr normal;
465  VrmlTextureCoordinatePtr texCoord;
466  SFBool ccw;
467  SFBool convex;
468  SFFloat creaseAngle;
469  MFInt32 normalIndex;
471  SFBool solid;
472  MFInt32 texCoordIndex;
473  };
474  typedef boost::intrusive_ptr<VrmlIndexedFaceSet> VrmlIndexedFaceSetPtr;
475 
476 
479  {
480  public:
481  VrmlColor();
482 
483  MFColor color;
484  };
485 
486 
489  {
490  public:
491  VrmlCoordinate();
492  MFVec3f point;
493  };
494 
495 
498  {
499  public:
501  MFVec2f point;
502  };
503 
504 
507  {
508  public:
509  VrmlNormal();
510  MFVec3f vector;
511  };
512 
513 
516  {
517  public:
519 
520  SFBool autoOffset;
521  SFFloat diskAngle;
522  SFBool enabled;
523  SFFloat maxAngle;
524  SFFloat minAngle;
525  SFFloat offset;
526  };
527  typedef boost::intrusive_ptr<VrmlCylinderSensor> VrmlCylinderSensorPtr;
528 
529 
532  {
533  public:
534  VrmlPointSet();
535 
536  VrmlCoordinatePtr coord;
537  VrmlColorPtr color;
538  };
539 
540  typedef boost::intrusive_ptr<VrmlPointSet> VrmlPointSetPtr;
541 
542 
545  {
546  public:
548 
550  SFBool repeatS;
551  SFBool repeatT;
552  };
553 
554  typedef boost::intrusive_ptr<VrmlPixelTexture> VrmlPixelTexturePtr;
555 
556 
559  {
560  public:
562 
563  MFString url;
564  SFBool loop;
565  SFFloat speed;
568  SFBool repeatS;
569  SFBool repeatT;
570  };
571 
572  typedef boost::intrusive_ptr<VrmlMovieTexture> VrmlMovieTexturePtr;
573 
574 
577  {
578  public:
580 
581  SFInt32 xDimension;
582  SFInt32 zDimension;
583  SFFloat xSpacing;
584  SFFloat zSpacing;
585  MFFloat height;
586  SFBool ccw;
588  SFFloat creaseAngle;
590  SFBool solid;
591  VrmlColorPtr color;
592  VrmlNormalPtr normal;
593  VrmlTextureCoordinatePtr texCoord;
594  };
595 
596  typedef boost::intrusive_ptr<VrmlElevationGrid> VrmlElevationGridPtr;
597 
598 
601  {
602  public:
603  VrmlExtrusion();
604 
605  MFVec2f crossSection;
606  MFVec3f spine;
607  MFVec2f scale;
608  MFRotation orientation;
609  SFBool beginCap;
610  SFBool endCap;
611  SFBool solid;
612  SFBool ccw;
613  SFBool convex;
614  SFFloat creaseAngle;
615  };
616 
617  typedef boost::intrusive_ptr<VrmlExtrusion> VrmlExtrusionPtr;
618 
619 
621  {
622  public:
623  VrmlSwitch();
624 
625  virtual MFNode& getChildren();
626  virtual int countChildren();
627  virtual VrmlNode* getChild(int index);
628  virtual void replaceChild(int childIndex, VrmlNode* childNode);
629 
630  MFNode choice;
631  SFInt32 whichChoice;
632  };
633 
634  typedef boost::intrusive_ptr<VrmlSwitch> VrmlSwitchPtr;
635 
636 
638  {
639  public:
640  VrmlLOD();
641 
642  virtual MFNode& getChildren();
643  virtual int countChildren();
644  virtual VrmlNode* getChild(int index);
645  virtual void replaceChild(int childIndex, VrmlNode* childNode);
646 
647  MFFloat range;
648  SFVec3f center;
649  MFNode level;
650  };
651 
652  typedef boost::intrusive_ptr<VrmlLOD> VrmlLODPtr;
653 
654 
656  {
657  public:
658  VrmlCollision();
659  SFBool collide;
660  SFNode proxy;
661  };
662 
663  typedef boost::intrusive_ptr<VrmlCollision> VrmlCollisionPtr;
664 
665 
667  {
668  public:
669  VrmlAnchor();
670  SFString description;
671  MFString parameter;
672  MFString url;
673  };
674 
675  typedef boost::intrusive_ptr<VrmlAnchor> VrmlAnchorPtr;
676 
677 
679  {
680  public:
681  VrmlBillboard();
682  SFVec3f axisOfRotation;
683  };
684 
685  typedef boost::intrusive_ptr<VrmlBillboard> VrmlBillboardPtr;
686 
687 
689  {
690  public:
691  VrmlFog();
692  SFColor color;
694  SFString fogType;
695  };
696 
697  typedef boost::intrusive_ptr<VrmlFog> VrmlFogPtr;
698 
699 
701  {
702  public:
703  VrmlWorldInfo();
704  SFString title;
705  MFString info;
706  };
707 
708  typedef boost::intrusive_ptr<VrmlWorldInfo> VrmlWorldInfoPtr;
709 
710 
712  {
713  public:
714  VrmlPointLight();
715  SFVec3f location;
716  SFBool on;
717  SFFloat intensity;
718  SFColor color;
719  SFFloat radius;
721  SFVec3f attenuation;
722  };
723 
724  typedef boost::intrusive_ptr<VrmlPointLight> VrmlPointLightPtr;
725 
726 
728  {
729  public:
732  SFColor color;
733  SFVec3f direction;
734  SFFloat intensity;
735  SFBool on;
736  };
737 
738  typedef boost::intrusive_ptr<VrmlDirectionalLight> VrmlDirectionalLightPtr;
739 
740 
742  {
743  public:
744  VrmlSpotLight();
745  SFVec3f location;
746  SFVec3f direction;
747  SFBool on;
748  SFColor color;
749  SFFloat intensity;
750  SFFloat radius;
752  SFVec3f attenuation;
753  SFFloat beamWidth;
754  SFFloat cutOffAngle;
755  };
756 
757  typedef boost::intrusive_ptr<VrmlSpotLight> VrmlSpotLightPtr;
758 
759  typedef boost::variant<SFBool,
762 
768  };
769 
770  typedef std::map <std::string, VrmlVariantField> TProtoFieldMap;
771  typedef std::pair<std::string, VrmlVariantField> TProtoFieldPair;
772 
773  template<typename TValue> int vrmlFieldTypeId() { return UNKNOWN_VRML_FIELD_TYPE; }
774  template<> inline int vrmlFieldTypeId<SFInt32>() { return SFINT32; }
775  template<> inline int vrmlFieldTypeId<MFInt32>() { return MFINT32; }
776  template<> inline int vrmlFieldTypeId<SFFloat>() { return SFFLOAT; }
777  template<> inline int vrmlFieldTypeId<MFFloat>() { return MFFLOAT; }
778  template<> inline int vrmlFieldTypeId<SFVec3f>() { return SFVEC3F; }
779  template<> inline int vrmlFieldTypeId<MFVec3f>() { return MFVEC3F; }
780  template<> inline int vrmlFieldTypeId<SFRotation>() { return SFROTATION; }
781  template<> inline int vrmlFieldTypeId<MFRotation>() { return MFROTATION; }
782  template<> inline int vrmlFieldTypeId<SFTime>() { return SFTIME; }
783  template<> inline int vrmlFieldTypeId<MFTime>() { return MFTIME; }
784  template<> inline int vrmlFieldTypeId<SFColor>() { return SFCOLOR; }
785  template<> inline int vrmlFieldTypeId<MFColor>() { return MFCOLOR; }
786  template<> inline int vrmlFieldTypeId<SFString>() { return SFSTRING; }
787  template<> inline int vrmlFieldTypeId<MFString>() { return MFSTRING; }
788  template<> inline int vrmlFieldTypeId<SFNode>() { return SFNODE; }
789  template<> inline int vrmlFieldTypeId<MFNode>() { return MFNODE; }
790  template<> inline int vrmlFieldTypeId<SFImage>() { return SFIMAGE; }
791 
792  CNOID_EXPORT const char* labelOfVrmlFieldTypeId(int type);
793 
794  template<typename TValue> inline const char* labelOfVrmlFieldType() {
795  return labelOfVrmlFieldTypeId(vrmlFieldTypeId<TValue>());
796  }
797 
800  {
801  public:
802  std::string protoName;
803  TProtoFieldMap fields;
804 
805  VrmlProto(const std::string& n);
806 
807  inline VrmlVariantField* findField(const std::string& fieldName) {
808  TProtoFieldMap::iterator p = fields.find(fieldName);
809  return (p != fields.end()) ? &p->second : 0;
810  }
811 
812  inline VrmlVariantField& field(const std::string& fieldName){
813  return fields[fieldName];
814  }
815 
816  /*
817  inline VrmlVariantField& addField(const std::string& fieldName, VrmlFieldTypeId typeId){
818  VrmlVariantField* field = &(fields[fieldName]);
819  field->setType(typeId);
820  return field;
821  }
822  */
823 
824  };
825  typedef boost::intrusive_ptr<VrmlProto> VrmlProtoPtr;
826 
827 
830  {
831  public:
832  VrmlProtoPtr proto;
833  TProtoFieldMap fields;
834  VrmlNodePtr actualNode;
835 
836  VrmlProtoInstance(VrmlProtoPtr proto0);
837 
838  inline VrmlVariantField* findField(const std::string& fieldName) {
839  TProtoFieldMap::iterator p = fields.find(fieldName);
840  return (p != fields.end()) ? &p->second : 0;
841  }
842 
843  };
844  typedef boost::intrusive_ptr<VrmlProtoInstance> VrmlProtoInstancePtr;
845 
851  template<class VrmlNodeType>
852  inline boost::intrusive_ptr<VrmlNodeType> dynamic_node_cast(VrmlNodePtr node) {
853  VrmlProtoInstancePtr protoInstance = boost::dynamic_pointer_cast<VrmlProtoInstance>(node);
854  if(protoInstance){
855  return boost::dynamic_pointer_cast<VrmlNodeType>(protoInstance->actualNode);
856  } else {
857  return boost::dynamic_pointer_cast<VrmlNodeType>(node);
858  }
859  }
860 
861 };
862 
863 #endif
MFFloat avatarSize
Definition: VrmlNodes.h:164
SFFloat transparency
Definition: VrmlNodes.h:302
Definition: VrmlNodes.h:193
VrmlTextureCoordinatePtr texCoord
Definition: VrmlNodes.h:465
boost::intrusive_ptr< VrmlLOD > VrmlLODPtr
Definition: VrmlNodes.h:652
boost::intrusive_ptr< VrmlMovieTexture > VrmlMovieTexturePtr
Definition: VrmlNodes.h:572
Eigen::Vector3d SFVec3f
Definition: VrmlNodes.h:35
SFBool horizontal
Definition: VrmlNodes.h:404
VRML TextureCoordinate node.
Definition: VrmlNodes.h:497
SFBool repeatS
Definition: VrmlNodes.h:550
MFString bottomUrl
Definition: VrmlNodes.h:184
Definition: VrmlNodes.h:765
SFVec3f center
Definition: VrmlNodes.h:234
SFFloat intensity
Definition: VrmlNodes.h:749
VrmlVariantField * findField(const std::string &fieldName)
Definition: VrmlNodes.h:807
MFColor color
Definition: VrmlNodes.h:483
SFFloat radius
Definition: VrmlNodes.h:380
SFVec3f location
Definition: VrmlNodes.h:715
SFVec3f axisOfRotation
Definition: VrmlNodes.h:682
Definition: VrmlNodes.h:766
VrmlNodePtr SFNode
Definition: VrmlNodes.h:128
Definition: VrmlNodes.h:765
VRML Color node.
Definition: VrmlNodes.h:478
SFColor color
Definition: VrmlNodes.h:692
Definition: VrmlNodes.h:27
VrmlProtoPtr proto
Definition: VrmlNodes.h:832
Definition: VrmlNodes.h:74
int vrmlFieldTypeId< MFRotation >()
Definition: VrmlNodes.h:781
SFFloat maxExtent
Definition: VrmlNodes.h:425
Eigen::Vector2d SFVec2f
Definition: VrmlNodes.h:34
std::string defName
Definition: VrmlNodes.h:101
SFFloat height
Definition: VrmlNodes.h:379
SFVec3f bboxCenter
Definition: VrmlNodes.h:219
MFString url
Definition: VrmlNodes.h:563
MFString url
Definition: VrmlNodes.h:672
MFNode children
Definition: VrmlNodes.h:221
VrmlNormalPtr normal
Definition: VrmlNodes.h:464
VRML Box node.
Definition: VrmlNodes.h:349
Definition: VrmlNodes.h:620
std::vector< SFColor > MFColor
Definition: VrmlNodes.h:52
int vrmlFieldTypeId< SFFloat >()
Definition: VrmlNodes.h:776
VrmlMaterialPtr material
Definition: VrmlNodes.h:285
VRML MovieTexture node.
Definition: VrmlNodes.h:558
boost::intrusive_ptr< VrmlProtoInstance > VrmlProtoInstancePtr
Definition: VrmlNodes.h:844
Abstract base class of all vrml nodes.
Definition: VrmlNodes.h:94
SFRotation scaleOrientation
Definition: VrmlNodes.h:237
MFVec2f point
Definition: VrmlNodes.h:501
std::vector< SFRotation > MFRotation
Definition: VrmlNodes.h:50
MFString family
Definition: VrmlNodes.h:403
boost::variant< SFBool, SFInt32, SFFloat, SFVec2f, SFVec3f, SFRotation, SFColor, SFTime, SFString, SFNode, SFImage, MFInt32, MFFloat, MFVec2f, MFVec3f, MFRotation, MFColor, MFTime, MFString, MFNode > VrmlVariantField
Definition: VrmlNodes.h:761
SFBool solid
Definition: VrmlNodes.h:590
MFString fstring
Definition: VrmlNodes.h:422
int vrmlFieldTypeId< SFNode >()
Definition: VrmlNodes.h:788
SFBool convex
Definition: VrmlNodes.h:613
SFFloat diskAngle
Definition: VrmlNodes.h:521
VRML Sphere node.
Definition: VrmlNodes.h:388
MFString topUrl
Definition: VrmlNodes.h:188
SFString description
Definition: VrmlNodes.h:670
Definition: VrmlNodes.h:83
boost::intrusive_ptr< VrmlBackground > VrmlBackgroundPtr
Definition: VrmlNodes.h:190
Definition: VrmlNodes.h:765
void intrusive_ptr_release(cnoid::Referenced *obj)
Definition: Referenced.h:46
Definition: VrmlNodes.h:61
boost::intrusive_ptr< VrmlPointLight > VrmlPointLightPtr
Definition: VrmlNodes.h:724
int vrmlFieldTypeId< SFRotation >()
Definition: VrmlNodes.h:780
Definition: VrmlNodes.h:765
SFColor color
Definition: VrmlNodes.h:732
MFString backUrl
Definition: VrmlNodes.h:183
SFTime()
Definition: VrmlNodes.h:29
VrmlVariantField * findField(const std::string &fieldName)
Definition: VrmlNodes.h:838
VRML Proto definition.
Definition: VrmlNodes.h:799
boost::intrusive_ptr< VrmlCoordinate > VrmlCoordinatePtr
Definition: VrmlNodes.h:433
SFString style
Definition: VrmlNodes.h:410
SFFloat visibilityLimit
Definition: VrmlNodes.h:168
SFFloat speed
Definition: VrmlNodes.h:565
Definition: VrmlNodes.h:66
Definition: VrmlNodes.h:68
VRML Normal node.
Definition: VrmlNodes.h:506
SFBool repeatT
Definition: VrmlNodes.h:551
SFBool solid
Definition: VrmlNodes.h:611
int vrmlFieldTypeId< MFInt32 >()
Definition: VrmlNodes.h:775
boost::intrusive_ptr< VrmlBillboard > VrmlBillboardPtr
Definition: VrmlNodes.h:685
MFInt32 coordIndex
Definition: VrmlNodes.h:446
SFBool top
Definition: VrmlNodes.h:382
Definition: VrmlNodes.h:765
SFFloat radius
Definition: VrmlNodes.h:719
SFTime stopTime
Definition: VrmlNodes.h:567
int vrmlFieldTypeId< SFInt32 >()
Definition: VrmlNodes.h:774
SFFloat spacing
Definition: VrmlNodes.h:409
MFFloat height
Definition: VrmlNodes.h:585
VRML Cylinder node.
Definition: VrmlNodes.h:373
SFBool bottom
Definition: VrmlNodes.h:378
Definition: VrmlNodes.h:766
SFColor emissiveColor
Definition: VrmlNodes.h:299
SFFloat xSpacing
Definition: VrmlNodes.h:583
SFFloat ambientIntensity
Definition: VrmlNodes.h:751
SFRotation rotation
Definition: VrmlNodes.h:235
boost::intrusive_ptr< VrmlUnsupportedNode > VrmlUnsupportedNodePtr
Definition: VrmlNodes.h:138
Eigen::Array3f SFColor
Definition: VrmlNodes.h:36
SFColor specularColor
Definition: VrmlNodes.h:301
boost::intrusive_ptr< VrmlPointSet > VrmlPointSetPtr
Definition: VrmlNodes.h:540
SFBool ccw
Definition: VrmlNodes.h:466
MFString type
Definition: VrmlNodes.h:167
boost::intrusive_ptr< VrmlCollision > VrmlCollisionPtr
Definition: VrmlNodes.h:663
VRML Coordinate node.
Definition: VrmlNodes.h:488
SFString fogType
Definition: VrmlNodes.h:694
Definition: VrmlNodes.h:711
VrmlColorPtr color
Definition: VrmlNodes.h:591
VrmlFieldTypeId
Definition: VrmlNodes.h:763
SFBool ccw
Definition: VrmlNodes.h:612
int vrmlFieldTypeId()
Definition: VrmlNodes.h:773
CNOID_EXPORT const char * labelOfVrmlFieldTypeId(int type)
Definition: VrmlNodes.cpp:10
boost::intrusive_ptr< VrmlFog > VrmlFogPtr
Definition: VrmlNodes.h:697
boost::intrusive_ptr< VrmlIndexedLineSet > VrmlIndexedLineSetPtr
Definition: VrmlNodes.h:448
SFFloat radius
Definition: VrmlNodes.h:392
boost::intrusive_ptr< VrmlGeometry > VrmlGeometryPtr
Definition: VrmlNodes.h:255
Definition: VrmlNodes.h:765
MFNode level
Definition: VrmlNodes.h:649
boost::intrusive_ptr< VrmlNavigationInfo > VrmlNavigationInfoPtr
Definition: VrmlNodes.h:170
VrmlAppearancePtr appearance
Definition: VrmlNodes.h:264
Definition: VrmlNodes.h:76
Definition: VrmlNodes.h:765
SFVec3f position
Definition: VrmlNodes.h:152
SFFloat beamWidth
Definition: VrmlNodes.h:753
SFFloat creaseAngle
Definition: VrmlNodes.h:468
SFBool repeatT
Definition: VrmlNodes.h:322
Definition: VrmlNodes.h:666
VrmlVariantField & field(const std::string &fieldName)
Definition: VrmlNodes.h:812
VrmlNodeCategory
Definition: VrmlNodes.h:56
std::string protoName
Definition: VrmlNodes.h:802
boost::intrusive_ptr< VrmlImageTexture > VrmlImageTexturePtr
Definition: VrmlNodes.h:324
SFFloat intensity
Definition: VrmlNodes.h:734
SFBool beginCap
Definition: VrmlNodes.h:609
std::bitset< NUM_VRML_NODE_CATEGORIES > categorySet
Definition: VrmlNodes.h:106
Definition: VrmlNodes.h:767
VrmlNodePtr actualNode
Definition: VrmlNodes.h:834
std::vector< SFInt32 > MFInt32
Definition: VrmlNodes.h:46
SFVec2f translation
Definition: VrmlNodes.h:338
SFVec3f center
Definition: VrmlNodes.h:648
std::vector< unsigned char > pixels
Definition: VrmlNodes.h:43
Definition: VrmlNodes.h:766
MFFloat groundAngle
Definition: VrmlNodes.h:179
SFBool ccw
Definition: VrmlNodes.h:586
SFFloat ambientIntensity
Definition: VrmlNodes.h:720
SFFloat creaseAngle
Definition: VrmlNodes.h:588
SFBool side
Definition: VrmlNodes.h:367
boost::intrusive_ptr< VrmlSpotLight > VrmlSpotLightPtr
Definition: VrmlNodes.h:757
SFBool autoOffset
Definition: VrmlNodes.h:520
SFBool on
Definition: VrmlNodes.h:747
int vrmlFieldTypeId< MFString >()
Definition: VrmlNodes.h:787
Definition: VrmlNodes.h:765
Definition: VrmlNodes.h:82
Definition: VrmlNodes.h:766
SFVec3f size
Definition: VrmlNodes.h:353
VRML Material node.
Definition: VrmlNodes.h:292
TProtoFieldMap fields
Definition: VrmlNodes.h:803
SFFloat shininess
Definition: VrmlNodes.h:300
Eigen::AngleAxisd SFRotation
Definition: VrmlNodes.h:37
Definition: VrmlNodes.h:766
int height
Definition: VrmlNodes.h:41
VRML Background node.
Definition: VrmlNodes.h:174
MFVec3f spine
Definition: VrmlNodes.h:606
VRML Inline node.
Definition: VrmlNodes.h:243
SFImage image
Definition: VrmlNodes.h:549
Definition: VrmlNodes.h:64
SFVec3f attenuation
Definition: VrmlNodes.h:752
SFFloat fieldOfView
Definition: VrmlNodes.h:150
int vrmlFieldTypeId< SFImage >()
Definition: VrmlNodes.h:790
SFBool on
Definition: VrmlNodes.h:735
SFBool solid
Definition: VrmlNodes.h:471
TProtoFieldMap fields
Definition: VrmlNodes.h:833
SFBool topToBottom
Definition: VrmlNodes.h:411
VRML Group node.
Definition: VrmlNodes.h:209
Definition: VrmlNodes.h:77
MFString info
Definition: VrmlNodes.h:705
MFVec2f scale
Definition: VrmlNodes.h:607
Definition: VrmlNodes.h:678
double SFFloat
Definition: VrmlNodes.h:23
Definition: VrmlNodes.h:63
int vrmlFieldTypeId< MFNode >()
Definition: VrmlNodes.h:789
void intrusive_ptr_add_ref(cnoid::Referenced *obj)
Definition: Referenced.h:42
Base class of VRML Texture nodes.
Definition: VrmlNodes.h:307
Definition: VrmlNodes.h:85
int width
Definition: VrmlNodes.h:40
SFString description
Definition: VrmlNodes.h:153
boost::intrusive_ptr< VrmlShape > VrmlShapePtr
Definition: VrmlNodes.h:267
boost::intrusive_ptr< VrmlMaterial > VrmlMaterialPtr
Definition: VrmlNodes.h:270
VrmlColorPtr color
Definition: VrmlNodes.h:442
VRML IndexedLineSet node.
Definition: VrmlNodes.h:437
MFNode choice
Definition: VrmlNodes.h:630
SFBool loop
Definition: VrmlNodes.h:564
Definition: VrmlNodes.h:655
boost::intrusive_ptr< VrmlColor > VrmlColorPtr
Definition: VrmlNodes.h:430
SFVec2f center
Definition: VrmlNodes.h:335
MFRotation orientation
Definition: VrmlNodes.h:608
MFInt32 colorIndex
Definition: VrmlNodes.h:444
MFFloat length
Definition: VrmlNodes.h:424
SFString title
Definition: VrmlNodes.h:704
MFString urls
Definition: VrmlNodes.h:247
std::string SFString
Definition: VrmlNodes.h:24
SFBool headlight
Definition: VrmlNodes.h:165
SFInt32 zDimension
Definition: VrmlNodes.h:582
VRML CylinderSensor node.
Definition: VrmlNodes.h:515
std::vector< SFTime > MFTime
Definition: VrmlNodes.h:51
VRML PixelTexture node.
Definition: VrmlNodes.h:544
SFBool repeatS
Definition: VrmlNodes.h:568
boost::intrusive_ptr< VrmlTextureTransform > VrmlTextureTransformPtr
Definition: VrmlNodes.h:276
std::vector< SFVec3f > MFVec3f
Definition: VrmlNodes.h:49
MFColor skyColor
Definition: VrmlNodes.h:182
Definition: VrmlNodes.h:766
MFVec3f point
Definition: VrmlNodes.h:492
VrmlColorPtr color
Definition: VrmlNodes.h:537
MFString frontUrl
Definition: VrmlNodes.h:185
MFString justify
Definition: VrmlNodes.h:405
int vrmlFieldTypeId< MFFloat >()
Definition: VrmlNodes.h:777
int SFInt32
Definition: VrmlNodes.h:22
Definition: VrmlNodes.h:80
SFTime startTime
Definition: VrmlNodes.h:566
SFBool endCap
Definition: VrmlNodes.h:610
SFColor color
Definition: VrmlNodes.h:748
SFFloat rotation
Definition: VrmlNodes.h:336
Definition: VrmlNodes.h:765
VRML Transform node.
Definition: VrmlNodes.h:227
VRML Cone node.
Definition: VrmlNodes.h:359
VRML TextureTransform node.
Definition: VrmlNodes.h:328
boost::intrusive_ptr< VrmlNormal > VrmlNormalPtr
Definition: VrmlNodes.h:451
SFFloat height
Definition: VrmlNodes.h:366
SFFloat visibilityRange
Definition: VrmlNodes.h:693
int vrmlFieldTypeId< SFVec3f >()
Definition: VrmlNodes.h:778
int vrmlFieldTypeId< SFString >()
Definition: VrmlNodes.h:786
boost::intrusive_ptr< VrmlWorldInfo > VrmlWorldInfoPtr
Definition: VrmlNodes.h:708
Definition: VrmlNodes.h:69
Definition: VrmlNodes.h:78
Definition: VrmlNodes.h:75
boost::intrusive_ptr< VrmlElevationGrid > VrmlElevationGridPtr
Definition: VrmlNodes.h:596
VrmlFontStylePtr fontStyle
Definition: VrmlNodes.h:423
boost::intrusive_ptr< AbstractVrmlGroup > AbstractVrmlGroupPtr
Definition: VrmlNodes.h:205
const char * labelOfVrmlFieldType()
Definition: VrmlNodes.h:794
Definition: VrmlNodes.h:58
VRML ImageTexture node.
Definition: VrmlNodes.h:315
Definition: EasyScanner.h:16
boost::intrusive_ptr< VrmlSwitch > VrmlSwitchPtr
Definition: VrmlNodes.h:634
Definition: VrmlNodes.h:73
boost::intrusive_ptr< VrmlAnchor > VrmlAnchorPtr
Definition: VrmlNodes.h:675
boost::intrusive_ptr< VrmlFontStyle > VrmlFontStylePtr
Definition: VrmlNodes.h:413
Definition: VrmlNodes.h:766
SFFloat intensity
Definition: VrmlNodes.h:717
boost::intrusive_ptr< VrmlSphere > VrmlSpherePtr
Definition: VrmlNodes.h:394
SFVec3f attenuation
Definition: VrmlNodes.h:721
SFBool colorPerVertex
Definition: VrmlNodes.h:445
MFInt32 texCoordIndex
Definition: VrmlNodes.h:472
std::vector< SFFloat > MFFloat
Definition: VrmlNodes.h:47
std::vector< SFVec2f, Eigen::aligned_allocator< SFVec2f > > MFVec2f
Definition: VrmlNodes.h:48
int vrmlFieldTypeId< MFTime >()
Definition: VrmlNodes.h:783
double value
Definition: VrmlNodes.h:28
SFColor color
Definition: VrmlNodes.h:718
Definition: VrmlNodes.h:766
SFVec3f direction
Definition: VrmlNodes.h:733
Definition: VrmlNodes.h:765
SFFloat radius
Definition: VrmlNodes.h:750
VRML ElevationGrid node.
Definition: VrmlNodes.h:576
Definition: VrmlNodes.h:688
VRML node which is instance of VRML Prototype.
Definition: VrmlNodes.h:829
SFBool repeatT
Definition: VrmlNodes.h:569
SFBool colorPerVertex
Definition: VrmlNodes.h:587
VRML Text node.
Definition: VrmlNodes.h:417
boost::intrusive_ptr< VrmlText > VrmlTextPtr
Definition: VrmlNodes.h:427
MFString leftUrl
Definition: VrmlNodes.h:186
VRML IndexedFaseSet node.
Definition: VrmlNodes.h:459
MFVec3f vector
Definition: VrmlNodes.h:510
boost::intrusive_ptr< VrmlTransform > VrmlTransformPtr
Definition: VrmlNodes.h:240
bool SFBool
Definition: VrmlNodes.h:21
SFVec3f translation
Definition: VrmlNodes.h:238
Definition: VrmlNodes.h:766
VrmlCoordinatePtr coord
Definition: VrmlNodes.h:536
SFFloat size
Definition: VrmlNodes.h:408
MFString parameter
Definition: VrmlNodes.h:671
Definition: VrmlNodes.h:132
VrmlTexturePtr texture
Definition: VrmlNodes.h:286
SFVec3f scale
Definition: VrmlNodes.h:236
MFInt32 normalIndex
Definition: VrmlNodes.h:469
std::string nodeTypeName
Definition: VrmlNodes.h:136
boost::intrusive_ptr< VrmlInline > VrmlInlinePtr
Definition: VrmlNodes.h:249
Definition: VrmlNodes.h:741
boost::intrusive_ptr< VrmlDirectionalLight > VrmlDirectionalLightPtr
Definition: VrmlNodes.h:738
SFFloat minAngle
Definition: VrmlNodes.h:524
SFString language
Definition: VrmlNodes.h:406
SFBool bottom
Definition: VrmlNodes.h:364
boost::intrusive_ptr< VrmlTextureCoordinate > VrmlTextureCoordinatePtr
Definition: VrmlNodes.h:454
VRML Appearance node.
Definition: VrmlNodes.h:280
Base class of VRML geometry nodes.
Definition: VrmlNodes.h:342
boost::intrusive_ptr< VrmlPixelTexture > VrmlPixelTexturePtr
Definition: VrmlNodes.h:554
boost::intrusive_ptr< VrmlProto > VrmlProtoPtr
Definition: VrmlNodes.h:825
SFFloat creaseAngle
Definition: VrmlNodes.h:614
SFInt32 xDimension
Definition: VrmlNodes.h:581
MFVec2f crossSection
Definition: VrmlNodes.h:605
boost::intrusive_ptr< VrmlCylinder > VrmlCylinderPtr
Definition: VrmlNodes.h:384
SFFloat offset
Definition: VrmlNodes.h:525
VRML Extrusion node.
Definition: VrmlNodes.h:600
SFBool collide
Definition: VrmlNodes.h:659
std::map< std::string, VrmlVariantField > TProtoFieldMap
Definition: VrmlNodes.h:770
int vrmlFieldTypeId< MFVec3f >()
Definition: VrmlNodes.h:779
Definition: VrmlNodes.h:60
VrmlNormalPtr normal
Definition: VrmlNodes.h:592
VRML Viewpoint node.
Definition: VrmlNodes.h:142
boost::intrusive_ptr< VrmlBox > VrmlBoxPtr
Definition: VrmlNodes.h:355
boost::intrusive_ptr< VrmlIndexedFaceSet > VrmlIndexedFaceSetPtr
Definition: VrmlNodes.h:474
boost::intrusive_ptr< VrmlNodeType > dynamic_node_cast(VrmlNodePtr node)
Definition: VrmlNodes.h:852
std::vector< SFString > MFString
Definition: VrmlNodes.h:53
SFNode geometry
Definition: VrmlNodes.h:265
Definition: VrmlNodes.h:39
Definition: VrmlNodes.h:727
SFBool on
Definition: VrmlNodes.h:716
SFFloat speed
Definition: VrmlNodes.h:166
VRML Shape node.
Definition: VrmlNodes.h:260
SFFloat zSpacing
Definition: VrmlNodes.h:584
Definition: VrmlNodes.h:764
boost::intrusive_ptr< VrmlAppearance > VrmlAppearancePtr
Definition: VrmlNodes.h:252
MFString rightUrl
Definition: VrmlNodes.h:187
#define CNOID_EXPORT
Definition: Util/exportdecl.h:13
boost::intrusive_ptr< VrmlTexture > VrmlTexturePtr
Definition: VrmlNodes.h:273
double operator=(double time)
Definition: VrmlNodes.h:31
SFRotation orientation
Definition: VrmlNodes.h:149
MFFloat skyAngle
Definition: VrmlNodes.h:181
SFVec3f location
Definition: VrmlNodes.h:745
SFBool normalPerVertex
Definition: VrmlNodes.h:470
SFFloat cutOffAngle
Definition: VrmlNodes.h:754
boost::intrusive_ptr< VrmlViewpoint > VrmlViewpointPtr
Definition: VrmlNodes.h:155
VrmlTextureTransformPtr textureTransform
Definition: VrmlNodes.h:287
SFVec3f direction
Definition: VrmlNodes.h:746
Definition: VrmlNodes.h:65
boost::intrusive_ptr< VrmlNode > VrmlNodePtr
Definition: VrmlNodes.h:126
VrmlCoordinatePtr coord
Definition: VrmlNodes.h:443
SFInt32 whichChoice
Definition: VrmlNodes.h:631
Definition: VrmlNodes.h:700
SFFloat maxAngle
Definition: VrmlNodes.h:523
boost::intrusive_ptr< VrmlExtrusion > VrmlExtrusionPtr
Definition: VrmlNodes.h:617
MFFloat range
Definition: VrmlNodes.h:647
int numComponents
Definition: VrmlNodes.h:42
SFVec2f scale
Definition: VrmlNodes.h:337
SFBool normalPerVertex
Definition: VrmlNodes.h:589
SFBool convex
Definition: VrmlNodes.h:467
Definition: VrmlNodes.h:71
SFFloat ambientIntensity
Definition: VrmlNodes.h:297
int vrmlFieldTypeId< SFColor >()
Definition: VrmlNodes.h:784
SFBool jump
Definition: VrmlNodes.h:151
boost::intrusive_ptr< VrmlCone > VrmlConePtr
Definition: VrmlNodes.h:369
VRML PointSet node.
Definition: VrmlNodes.h:531
SFBool leftToRight
Definition: VrmlNodes.h:407
SFBool repeatS
Definition: VrmlNodes.h:321
boost::intrusive_ptr< VrmlCylinderSensor > VrmlCylinderSensorPtr
Definition: VrmlNodes.h:527
boost::intrusive_ptr< VrmlGroup > VrmlGroupPtr
Definition: VrmlNodes.h:223
MFColor groundColor
Definition: VrmlNodes.h:180
SFFloat bottomRadius
Definition: VrmlNodes.h:365
std::vector< SFNode > MFNode
Definition: VrmlNodes.h:129
Definition: VrmlNodes.h:637
Definition: VrmlNodes.h:70
int vrmlFieldTypeId< MFColor >()
Definition: VrmlNodes.h:785
std::pair< std::string, VrmlVariantField > TProtoFieldPair
Definition: VrmlNodes.h:771
SFNode proxy
Definition: VrmlNodes.h:660
SFVec3f bboxSize
Definition: VrmlNodes.h:220
SFColor diffuseColor
Definition: VrmlNodes.h:298
SFFloat ambientIntensity
Definition: VrmlNodes.h:731
VRML FontStyle node.
Definition: VrmlNodes.h:398
MFString url
Definition: VrmlNodes.h:320
int vrmlFieldTypeId< SFTime >()
Definition: VrmlNodes.h:782
SFTime(double time)
Definition: VrmlNodes.h:30
SFBool side
Definition: VrmlNodes.h:381
VRML NavigationInfo node.
Definition: VrmlNodes.h:159
SFBool enabled
Definition: VrmlNodes.h:522
VrmlTextureCoordinatePtr texCoord
Definition: VrmlNodes.h:593