VrmlNodes.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008, AIST, the University of Tokyo and General Robotix Inc.
3  * All rights reserved. This program is made available under the terms of the
4  * Eclipse Public License v1.0 which accompanies this distribution, and is
5  * available at http://www.eclipse.org/legal/epl-v10.html
6  * Contributors:
7  * National Institute of Advanced Industrial Science and Technology (AIST)
8  * General Robotix Inc.
9  */
10 
17 #ifndef OPENHRP_UTIL_VRMLNODES_H_INCLUDED
18 #define OPENHRP_UTIL_VRMLNODES_H_INCLUDED
19 
20 #include "config.h"
21 
22 #include <vector>
23 #include <string>
24 #include <map>
25 #include <bitset>
26 #include <typeinfo>
27 #include <boost/intrusive_ptr.hpp>
28 #include <boost/array.hpp>
29 
30 
31 namespace hrp {
32 
46  };
47 
48  typedef bool SFBool;
49  typedef int SFInt32;
50  typedef double SFFloat;
51  typedef SFFloat SFTime;
52  typedef std::string SFString;
53 
54  typedef boost::array<SFFloat, 2> SFVec2f;
55  typedef boost::array<SFFloat, 3> SFVec3f;
56  typedef boost::array<SFFloat, 4> SFVec4f;
57 
58  typedef SFVec3f SFColor;
59  typedef SFVec4f SFRotation;
60 
61  typedef struct {
62  int width;
63  int height;
65  std::vector<unsigned char> pixels;
66  } SFImage;
67 
68 
69  typedef std::vector<SFInt32> MFInt32;
70  typedef std::vector<SFFloat> MFFloat;
71  typedef std::vector<SFVec2f> MFVec2f;
72  typedef std::vector<SFVec3f> MFVec3f;
73  typedef std::vector<SFVec4f> MFVec4f;
74  typedef std::vector<SFRotation> MFRotation;
75  typedef std::vector<SFTime> MFTime;
76  typedef std::vector<SFColor> MFColor;
77  typedef std::vector<SFString> MFString;
78 
79 
80  // see 4.6.3 - 4.6.10 of the VRML97 specification
82 
83  ANY_NODE = -1,
84 
87 
92 
97 
104 
106 
109 
111 
113  };
114 
115  class VrmlNode;
116 
117  inline void intrusive_ptr_add_ref(VrmlNode* obj);
118  inline void intrusive_ptr_release(VrmlNode* obj);
119 
122  {
123  public:
124 
125  VrmlNode();
126  virtual ~VrmlNode();
127 
128  static const char* getLabelOfFieldType(int type);
129 
130  std::string defName;
131 
132  bool isCategoryOf(VrmlNodeCategory category);
133 
134  protected:
135  std::bitset<NUM_VRML_NODE_CATEGORIES> categorySet;
136 
137  private:
139 
140  friend void intrusive_ptr_add_ref(VrmlNode* obj);
141  friend void intrusive_ptr_release(VrmlNode* obj);
142  };
143 
145  obj->refCounter++;
146  }
147 
149  obj->refCounter--;
150  if(obj->refCounter <= 0){
151  delete obj;
152  }
153  }
154 
155  typedef boost::intrusive_ptr<VrmlNode> VrmlNodePtr;
156 
157  typedef VrmlNodePtr SFNode;
158  typedef std::vector<SFNode> MFNode;
159 
160 
162  {
163  public:
164  VrmlUnsupportedNode(const std::string& nodeTypeName);
165  std::string nodeTypeName;
166  };
167  typedef boost::intrusive_ptr<VrmlUnsupportedNode> VrmlUnsupportedNodePtr;
168 
169 
172  {
173  public:
174  VrmlViewpoint();
175 
176  SFFloat fieldOfView;
177  SFBool jump;
178  SFRotation orientation;
179  SFVec3f position;
180  SFString description;
181  };
182  typedef boost::intrusive_ptr<VrmlViewpoint> VrmlViewpointPtr;
183 
184 
187  {
188  public:
190 
191  MFFloat avatarSize;
192  SFBool headlight;
193  SFFloat speed;
194  MFString type;
196  };
197  typedef boost::intrusive_ptr<VrmlNavigationInfo> VrmlNavigationInfoPtr;
198 
199 
202  {
203  public:
204  VrmlBackground();
205 
206  MFFloat groundAngle;
207  MFColor groundColor;
208  MFFloat skyAngle;
209  MFColor skyColor;
210  MFString backUrl;
211  MFString bottomUrl;
212  MFString frontUrl;
213  MFString leftUrl;
214  MFString rightUrl;
215  MFString topUrl;
216  };
217  typedef boost::intrusive_ptr<VrmlBackground> VrmlBackgroundPtr;
218 
219 
221  {
222  public:
224 
225  virtual MFNode& getChildren() = 0;
226  virtual int countChildren() = 0;
227  virtual VrmlNode* getChild(int index) = 0;
228  virtual void replaceChild(int childIndex, VrmlNode* childNode) = 0;
229 
230  void removeChild(int childIndex);
231  };
232  typedef boost::intrusive_ptr<AbstractVrmlGroup> AbstractVrmlGroupPtr;
233 
234 
237  {
238  public:
239  VrmlGroup();
240 
241  virtual MFNode& getChildren();
242  virtual int countChildren();
243  virtual VrmlNode* getChild(int index);
244  virtual void replaceChild(int childIndex, VrmlNode* childNode);
245 
246  SFVec3f bboxCenter;
247  SFVec3f bboxSize;
248  MFNode children;
249  };
250  typedef boost::intrusive_ptr<VrmlGroup> VrmlGroupPtr;
251 
252 
255  {
256  public:
257  VrmlTransform();
258 
259  SFVec3f center;
260  SFRotation rotation;
261  SFVec3f scale;
262  SFRotation scaleOrientation;
263  SFVec3f translation;
264  };
265  typedef boost::intrusive_ptr<VrmlTransform> VrmlTransformPtr;
266 
269  {
270  public:
271  VrmlInline();
272  MFString urls;
273  };
274  typedef boost::intrusive_ptr<VrmlInline> VrmlInlinePtr;
275 
276 
278  typedef boost::intrusive_ptr<VrmlAppearance> VrmlAppearancePtr;
279 
281  typedef boost::intrusive_ptr<VrmlGeometry> VrmlGeometryPtr;
282 
283 
286  {
287  public:
288  VrmlShape();
289  VrmlAppearancePtr appearance;
290  SFNode geometry;
291  };
292  typedef boost::intrusive_ptr<VrmlShape> VrmlShapePtr;
293 
294 
296  typedef boost::intrusive_ptr<VrmlMaterial> VrmlMaterialPtr;
297 
298  class VrmlTexture;
299  typedef boost::intrusive_ptr<VrmlTexture> VrmlTexturePtr;
300 
302  typedef boost::intrusive_ptr<VrmlTextureTransform> VrmlTextureTransformPtr;
303 
304 
307  {
308  public:
309  VrmlAppearance();
310 
311  VrmlMaterialPtr material;
312  VrmlTexturePtr texture;
313  VrmlTextureTransformPtr textureTransform;
314  };
315 
316 
319  {
320  public:
321  VrmlMaterial();
322 
324  SFColor diffuseColor;
325  SFColor emissiveColor;
326  SFFloat shininess;
327  SFColor specularColor;
328  SFFloat transparency;
329  };
330 
331 
334  {
335  public:
336  VrmlTexture();
337  };
338 
339 
342  {
343  public:
345 
346  MFString url;
347  SFBool repeatS;
348  SFBool repeatT;
349  };
350  typedef boost::intrusive_ptr<VrmlImageTexture> VrmlImageTexturePtr;
351 
352 
355  {
356  public:
358 
359  SFVec2f center;
360  SFFloat rotation;
361  SFVec2f scale;
362  SFVec2f translation;
363  };
364 
367  {
368  public:
369  VrmlGeometry();
370  };
371 
374  {
375  public:
376  VrmlBox();
377  SFVec3f size;
378  };
379  typedef boost::intrusive_ptr<VrmlBox> VrmlBoxPtr;
380 
381 
384  {
385  public:
386  VrmlCone();
387 
388  SFBool bottom;
389  SFFloat bottomRadius;
390  SFFloat height;
391  SFBool side;
392  };
393  typedef boost::intrusive_ptr<VrmlCone> VrmlConePtr;
394 
395 
398  {
399  public:
400  VrmlCylinder();
401 
402  SFBool bottom;
403  SFFloat height;
404  SFFloat radius;
405  SFBool side;
406  SFBool top;
407  };
408  typedef boost::intrusive_ptr<VrmlCylinder> VrmlCylinderPtr;
409 
410 
413  {
414  public:
415  VrmlSphere();
416  SFFloat radius;
417  };
418  typedef boost::intrusive_ptr<VrmlSphere> VrmlSpherePtr;
419 
420 
423  {
424  public:
425  VrmlFontStyle();
426 
427  MFString family;
428  SFBool horizontal;
429  MFString justify;
430  SFString language;
431  SFBool leftToRight;
432  SFFloat size;
433  SFFloat spacing;
434  SFString style;
435  SFBool topToBottom;
436  };
437  typedef boost::intrusive_ptr<VrmlFontStyle> VrmlFontStylePtr;
438 
439 
442  {
443  public:
444  VrmlText();
445 
446  MFString fstring;
447  VrmlFontStylePtr fontStyle;
448  MFFloat length;
449  SFFloat maxExtent;
450  };
451  typedef boost::intrusive_ptr<VrmlText> VrmlTextPtr;
452 
453 
454  class VrmlColor;
455  typedef boost::intrusive_ptr<VrmlColor> VrmlColorPtr;
456 
458  typedef boost::intrusive_ptr<VrmlCoordinate> VrmlCoordinatePtr;
459 
462  {
463  public:
465 
466  VrmlColorPtr color;
467  VrmlCoordinatePtr coord;
468  MFInt32 colorIndex;
470  MFInt32 coordIndex;
471  };
472  typedef boost::intrusive_ptr<VrmlIndexedLineSet> VrmlIndexedLineSetPtr;
473 
474 
475  class VrmlNormal;
476  typedef boost::intrusive_ptr<VrmlNormal> VrmlNormalPtr;
477 
479  typedef boost::intrusive_ptr<VrmlTextureCoordinate> VrmlTextureCoordinatePtr;
480 
481 
484  {
485  public:
487 
488  VrmlNormalPtr normal;
489  VrmlTextureCoordinatePtr texCoord;
490  SFBool ccw;
491  SFBool convex;
492  SFFloat creaseAngle;
493  MFInt32 normalIndex;
495  SFBool solid;
496  MFInt32 texCoordIndex;
497  };
498  typedef boost::intrusive_ptr<VrmlIndexedFaceSet> VrmlIndexedFaceSetPtr;
499 
500 
503  {
504  public:
505  VrmlColor();
506 
507  MFColor color;
508  };
509 
510 
513  {
514  public:
515  VrmlCoordinate();
516  MFVec3f point;
517  };
518 
519 
522  {
523  public:
525  MFVec2f point;
526  };
527 
528 
531  {
532  public:
533  VrmlNormal();
534  MFVec3f vector;
535  };
536 
537 
540  {
541  public:
543 
544  SFBool autoOffset;
545  SFFloat diskAngle;
546  SFBool enabled;
547  SFFloat maxAngle;
548  SFFloat minAngle;
549  SFFloat offset;
550  };
551  typedef boost::intrusive_ptr<VrmlCylinderSensor> VrmlCylinderSensorPtr;
552 
553 
554 
555  // #####
558  {
559  public:
560  VrmlPointSet();
561 
562  VrmlCoordinatePtr coord;
563  VrmlColorPtr color;
564  };
565 
566  typedef boost::intrusive_ptr<VrmlPointSet> VrmlPointSetPtr;
567 
568 
569 
570  // #####
573  {
574  public:
576 
578  SFBool repeatS;
579  SFBool repeatT;
580  };
581 
582  typedef boost::intrusive_ptr<VrmlPixelTexture> VrmlPixelTexturePtr;
583 
584 
585 
586  // #####
589  {
590  public:
592 
593  MFString url;
594  SFBool loop;
595  SFFloat speed;
596  SFTime startTime;
597  SFTime stopTime;
598  SFBool repeatS;
599  SFBool repeatT;
600  };
601 
602  typedef boost::intrusive_ptr<VrmlMovieTexture> VrmlMovieTexturePtr;
603 
604 
605 
606  // #####
609  {
610  public:
612 
613  SFInt32 xDimension;
614  SFInt32 zDimension;
615  SFFloat xSpacing;
616  SFFloat zSpacing;
617  MFFloat height;
618  SFBool ccw;
620  SFFloat creaseAngle;
622  SFBool solid;
623  VrmlColorPtr color;
624  VrmlNormalPtr normal;
625  VrmlTextureCoordinatePtr texCoord;
626  };
627 
628  typedef boost::intrusive_ptr<VrmlElevationGrid> VrmlElevationGridPtr;
629 
630 
631 
632  // #####
635  {
636  public:
637  VrmlExtrusion();
638 
639  MFVec2f crossSection;
640  MFVec3f spine;
641  MFVec2f scale;
642  MFRotation orientation;
643  SFBool beginCap;
644  SFBool endCap;
645  SFBool solid;
646  SFBool ccw;
647  SFBool convex;
648  SFFloat creaseAngle;
649  };
650 
651  typedef boost::intrusive_ptr<VrmlExtrusion> VrmlExtrusionPtr;
652 
653 
654 
656  {
657  public:
658  VrmlSwitch();
659 
660  virtual MFNode& getChildren();
661  virtual int countChildren();
662  virtual VrmlNode* getChild(int index);
663  virtual void replaceChild(int childIndex, VrmlNode* childNode);
664 
665  MFNode choice;
666  SFInt32 whichChoice;
667  };
668 
669  typedef boost::intrusive_ptr<VrmlSwitch> VrmlSwitchPtr;
670 
671 
673  {
674  public:
675  VrmlLOD();
676 
677  virtual MFNode& getChildren();
678  virtual int countChildren();
679  virtual VrmlNode* getChild(int index);
680  virtual void replaceChild(int childIndex, VrmlNode* childNode);
681 
682  MFFloat range;
683  SFVec3f center;
684  MFNode level;
685  };
686 
687  typedef boost::intrusive_ptr<VrmlLOD> VrmlLODPtr;
688 
689 
691  {
692  public:
693  VrmlCollision();
694  SFBool collide;
695  SFNode proxy;
696  };
697 
698  typedef boost::intrusive_ptr<VrmlCollision> VrmlCollisionPtr;
699 
700 
702  {
703  public:
704  VrmlAnchor();
705  SFString description;
706  MFString parameter;
707  MFString url;
708  };
709 
710  typedef boost::intrusive_ptr<VrmlAnchor> VrmlAnchorPtr;
711 
712 
714  {
715  public:
716  VrmlBillboard();
717  SFVec3f axisOfRotation;
718  };
719 
720  typedef boost::intrusive_ptr<VrmlBillboard> VrmlBillboardPtr;
721 
722 
724  {
725  public:
726  VrmlFog();
727  SFColor color;
729  SFString fogType;
730  };
731 
732  typedef boost::intrusive_ptr<VrmlFog> VrmlFogPtr;
733 
734 
736  {
737  public:
738  VrmlWorldInfo();
739  SFString title;
740  MFString info;
741  };
742 
743  typedef boost::intrusive_ptr<VrmlWorldInfo> VrmlWorldInfoPtr;
744 
745 
747  {
748  public:
749  VrmlPointLight();
750  SFVec3f location;
751  SFBool on;
752  SFFloat intensity;
753  SFColor color;
754  SFFloat radius;
756  SFVec3f attenuation;
757  };
758 
759  typedef boost::intrusive_ptr<VrmlPointLight> VrmlPointLightPtr;
760 
761 
763  {
764  public:
767  SFColor color;
768  SFVec3f direction;
769  SFFloat intensity;
770  SFBool on;
771  };
772 
773  typedef boost::intrusive_ptr<VrmlDirectionalLight> VrmlDirectionalLightPtr;
774 
775 
777  {
778  public:
779  VrmlSpotLight();
780  SFVec3f location;
781  SFVec3f direction;
782  SFBool on;
783  SFColor color;
784  SFFloat intensity;
785  SFFloat radius;
787  SFVec3f attenuation;
788  SFFloat beamWidth;
789  SFFloat cutOffAngle;
790  };
791 
792  typedef boost::intrusive_ptr<VrmlSpotLight> VrmlSpotLightPtr;
793 
794 
795 
797  {
798  private:
799 
800  union {
801  SFInt32 sfInt32;
802  SFFloat sfFloat;
803  SFVec2f sfVec2f;
804  SFVec3f sfVec3f;
805  SFRotation sfRotation;
806  SFColor sfColor;
807  SFBool sfBool;
808  SFTime sfTime;
809 // SFImage sfImage; // #####
810  } v;
811 
812  void* valueObj; // multi-type field object
813 
815 
816  void copy(const VrmlVariantField& org);
817  void deleteObj();
818 
819  public:
820 
824  VrmlVariantField& operator=(const VrmlVariantField& org);
825 
826  ~VrmlVariantField();
827 
828  inline VrmlFieldTypeId typeId() { return typeId_; }
829  void setType(VrmlFieldTypeId typeId0);
830 
831  inline SFInt32& sfInt32() { return v.sfInt32; }
832  inline MFInt32& mfInt32() { return *((MFInt32*)valueObj); }
833  inline SFFloat& sfFloat() { return v.sfFloat; }
834  inline MFFloat& mfFloat() { return *((MFFloat*)valueObj); }
835  inline SFTime& sfTime() { return v.sfFloat; }
836  inline MFTime& mfTime() { return *((MFTime*)valueObj); }
837  inline SFBool& sfBool() { return v.sfBool; }
838  inline SFVec2f& sfVec2f() { return v.sfVec2f; }
839  inline MFVec2f& mfVec2f() { return *((MFVec2f*)valueObj); }
840  inline SFVec3f& sfVec3f() { return v.sfVec3f; }
841  inline MFVec3f& mfVec3f() { return *((MFVec3f*)valueObj); }
842  inline SFRotation& sfRotation() { return v.sfRotation; }
843  inline MFRotation& mfRotation() { return *((MFRotation*)valueObj); }
844  inline SFString& sfString() { return *((SFString*)valueObj); }
845  inline MFString& mfString() { return *((MFString*)valueObj); }
846  inline SFColor& sfColor() { return v.sfColor; }
847  inline MFColor& mfColor() { return *((MFColor*)valueObj); }
848  inline SFNode& sfNode() { return *((SFNode*)valueObj); }
849  inline MFNode& mfNode() { return *((MFNode*)valueObj); }
850  inline SFImage& sfImage() { return *((SFImage*)valueObj); } // #####
851 
852  };
853 
854  typedef std::map <std::string, VrmlVariantField> TProtoFieldMap;
855  typedef std::pair<std::string, VrmlVariantField> TProtoFieldPair;
856 
857 
860  {
861  public:
862  std::string protoName;
863  TProtoFieldMap fields;
864 
865  VrmlProto(const std::string& n);
866 
867  inline VrmlVariantField* getField(const std::string& fieldName) {
868  TProtoFieldMap::iterator p = fields.find(fieldName);
869  return (p != fields.end()) ? &p->second : 0;
870  }
871 
872  inline VrmlVariantField* addField(const std::string& fieldName, VrmlFieldTypeId typeId){
873  VrmlVariantField* field = &(fields[fieldName]);
874  field->setType(typeId);
875  return field;
876  }
877 
878  };
879  typedef boost::intrusive_ptr<VrmlProto> VrmlProtoPtr;
880 
881 
884  {
885  public:
886  VrmlProtoPtr proto;
887  TProtoFieldMap fields;
888  VrmlNodePtr actualNode;
889 
890  VrmlProtoInstance(VrmlProtoPtr proto0);
891 
892  inline VrmlVariantField* getField(const std::string& fieldName) {
893  TProtoFieldMap::iterator p = fields.find(fieldName);
894  return (p != fields.end()) ? &p->second : 0;
895  }
896 
897  };
898  typedef boost::intrusive_ptr<VrmlProtoInstance> VrmlProtoInstancePtr;
899 
900 
906  template<class VrmlNodeType>
907  boost::intrusive_ptr<VrmlNodeType> dynamic_node_cast(VrmlNodePtr node) {
908  VrmlProtoInstancePtr protoInstance = boost::dynamic_pointer_cast<VrmlProtoInstance>(node);
909  if(protoInstance){
910  return boost::dynamic_pointer_cast<VrmlNodeType>(protoInstance->actualNode);
911  } else {
912  return boost::dynamic_pointer_cast<VrmlNodeType>(node);
913  }
914  }
915 
916 };
917 
918 #endif
SFFloat shininess
Definition: VrmlNodes.h:326
MFVec2f crossSection
Definition: VrmlNodes.h:639
std::vector< SFNode > MFNode
Definition: VrmlNodes.h:158
MFRotation & mfRotation()
Definition: VrmlNodes.h:843
std::vector< SFFloat > MFFloat
Definition: VrmlNodes.h:70
boost::intrusive_ptr< VrmlTextureTransform > VrmlTextureTransformPtr
Definition: VrmlNodes.h:301
double SFFloat
Definition: VrmlNodes.h:50
bool SFBool
Definition: VrmlNodes.h:48
boost::intrusive_ptr< VrmlCollision > VrmlCollisionPtr
Definition: VrmlNodes.h:698
boost::intrusive_ptr< VrmlBackground > VrmlBackgroundPtr
Definition: VrmlNodes.h:217
SFVec3f attenuation
Definition: VrmlNodes.h:787
MFString justify
Definition: VrmlNodes.h:429
std::string nodeTypeName
Definition: VrmlNodes.h:165
VrmlCoordinatePtr coord
Definition: VrmlNodes.h:467
std::vector< SFColor > MFColor
Definition: VrmlNodes.h:76
MFFloat range
Definition: VrmlNodes.h:682
VRML Background node.
Definition: VrmlNodes.h:201
VrmlMaterialPtr material
Definition: VrmlNodes.h:311
SFColor diffuseColor
Definition: VrmlNodes.h:324
MFString url
Definition: VrmlNodes.h:707
png_infop png_charp png_int_32 png_int_32 int * type
Definition: png.h:2332
SFFloat ambientIntensity
Definition: VrmlNodes.h:323
VRML Material node.
Definition: VrmlNodes.h:318
SFVec2f & sfVec2f()
Definition: VrmlNodes.h:838
MFNode level
Definition: VrmlNodes.h:684
VRML ImageTexture node.
Definition: VrmlNodes.h:341
SFFloat fieldOfView
Definition: VrmlNodes.h:176
MFString fstring
Definition: VrmlNodes.h:446
boost::intrusive_ptr< VrmlUnsupportedNode > VrmlUnsupportedNodePtr
Definition: VrmlNodes.h:167
SFFloat cutOffAngle
Definition: VrmlNodes.h:789
boost::intrusive_ptr< VrmlText > VrmlTextPtr
Definition: VrmlNodes.h:451
VRML FontStyle node.
Definition: VrmlNodes.h:422
Abstract base class of all vrml nodes.
Definition: VrmlNodes.h:121
SFString fogType
Definition: VrmlNodes.h:729
boost::intrusive_ptr< VrmlImageTexture > VrmlImageTexturePtr
Definition: VrmlNodes.h:350
MFNode children
Definition: VrmlNodes.h:248
boost::intrusive_ptr< VrmlTransform > VrmlTransformPtr
Definition: VrmlNodes.h:265
std::pair< std::string, VrmlVariantField > TProtoFieldPair
Definition: VrmlNodes.h:855
MFColor & mfColor()
Definition: VrmlNodes.h:847
std::vector< unsigned char > pixels
Definition: VrmlNodes.h:65
MFColor color
Definition: VrmlNodes.h:507
boost::intrusive_ptr< VrmlGroup > VrmlGroupPtr
Definition: VrmlNodes.h:250
VrmlFieldTypeId typeId_
Definition: VrmlNodes.h:814
boost::intrusive_ptr< VrmlElevationGrid > VrmlElevationGridPtr
Definition: VrmlNodes.h:628
VrmlProtoPtr proto
Definition: VrmlNodes.h:886
MFVec3f vector
Definition: VrmlNodes.h:534
SFVec3f size
Definition: VrmlNodes.h:377
VRML Color node.
Definition: VrmlNodes.h:502
VRML Shape node.
Definition: VrmlNodes.h:285
SFString language
Definition: VrmlNodes.h:430
std::string protoName
Definition: VrmlNodes.h:862
std::map< std::string, VrmlVariantField > TProtoFieldMap
Definition: VrmlNodes.h:854
VRML Cone node.
Definition: VrmlNodes.h:383
boost::intrusive_ptr< VrmlProtoInstance > VrmlProtoInstancePtr
Definition: VrmlNodes.h:898
boost::intrusive_ptr< VrmlGeometry > VrmlGeometryPtr
Definition: VrmlNodes.h:280
VrmlTexturePtr texture
Definition: VrmlNodes.h:312
Base class of VRML geometry nodes.
Definition: VrmlNodes.h:366
boost::intrusive_ptr< VrmlNavigationInfo > VrmlNavigationInfoPtr
Definition: VrmlNodes.h:197
SFFloat visibilityRange
Definition: VrmlNodes.h:728
boost::intrusive_ptr< VrmlNodeType > dynamic_node_cast(VrmlNodePtr node)
Definition: VrmlNodes.h:907
VRML Coordinate node.
Definition: VrmlNodes.h:512
VRML Group node.
Definition: VrmlNodes.h:236
VRML IndexedFaseSet node.
Definition: VrmlNodes.h:483
void intrusive_ptr_add_ref(Referenced *obj)
Definition: Referenced.h:31
SFColor emissiveColor
Definition: VrmlNodes.h:325
boost::intrusive_ptr< VrmlMovieTexture > VrmlMovieTexturePtr
Definition: VrmlNodes.h:602
SFRotation rotation
Definition: VrmlNodes.h:260
VRML TextureCoordinate node.
Definition: VrmlNodes.h:521
SFString description
Definition: VrmlNodes.h:705
boost::intrusive_ptr< VrmlBillboard > VrmlBillboardPtr
Definition: VrmlNodes.h:720
boost::intrusive_ptr< VrmlPixelTexture > VrmlPixelTexturePtr
Definition: VrmlNodes.h:582
boost::intrusive_ptr< VrmlCone > VrmlConePtr
Definition: VrmlNodes.h:393
MFVec3f & mfVec3f()
Definition: VrmlNodes.h:841
SFFloat ambientIntensity
Definition: VrmlNodes.h:786
SFRotation orientation
Definition: VrmlNodes.h:178
SFString & sfString()
Definition: VrmlNodes.h:844
void intrusive_ptr_release(Referenced *obj)
Definition: Referenced.h:35
boost::intrusive_ptr< VrmlLOD > VrmlLODPtr
Definition: VrmlNodes.h:687
boost::intrusive_ptr< VrmlShape > VrmlShapePtr
Definition: VrmlNodes.h:292
SFFloat creaseAngle
Definition: VrmlNodes.h:648
boost::intrusive_ptr< VrmlFontStyle > VrmlFontStylePtr
Definition: VrmlNodes.h:437
VRML Inline node.
Definition: VrmlNodes.h:268
SFVec3f bboxCenter
Definition: VrmlNodes.h:246
boost::intrusive_ptr< VrmlSwitch > VrmlSwitchPtr
Definition: VrmlNodes.h:669
VRML Text node.
Definition: VrmlNodes.h:441
SFVec3f axisOfRotation
Definition: VrmlNodes.h:717
MFInt32 & mfInt32()
Definition: VrmlNodes.h:832
std::string SFString
Definition: VrmlNodes.h:52
MFString & mfString()
Definition: VrmlNodes.h:845
VRML IndexedLineSet node.
Definition: VrmlNodes.h:461
VrmlCoordinatePtr coord
Definition: VrmlNodes.h:562
SFString description
Definition: VrmlNodes.h:180
SFVec3f bboxSize
Definition: VrmlNodes.h:247
MFVec2f & mfVec2f()
Definition: VrmlNodes.h:839
boost::intrusive_ptr< VrmlBox > VrmlBoxPtr
Definition: VrmlNodes.h:379
boost::intrusive_ptr< VrmlProto > VrmlProtoPtr
Definition: VrmlNodes.h:879
SFFloat SFTime
Definition: VrmlNodes.h:51
SFRotation scaleOrientation
Definition: VrmlNodes.h:262
VrmlTextureCoordinatePtr texCoord
Definition: VrmlNodes.h:489
SFInt32 & sfInt32()
Definition: VrmlNodes.h:831
VRML TextureTransform node.
Definition: VrmlNodes.h:354
boost::intrusive_ptr< VrmlCylinderSensor > VrmlCylinderSensorPtr
Definition: VrmlNodes.h:551
SFBool side
Definition: VrmlNodes.h:391
SFFloat transparency
Definition: VrmlNodes.h:328
std::vector< SFRotation > MFRotation
Definition: VrmlNodes.h:74
boost::intrusive_ptr< VrmlIndexedLineSet > VrmlIndexedLineSetPtr
Definition: VrmlNodes.h:472
SFColor color
Definition: VrmlNodes.h:727
VrmlNodeCategory
Definition: VrmlNodes.h:81
list index
VRML Box node.
Definition: VrmlNodes.h:373
std::vector< SFVec3f > MFVec3f
Definition: VrmlNodes.h:72
MFRotation orientation
Definition: VrmlNodes.h:642
VRML Sphere node.
Definition: VrmlNodes.h:412
SFInt32 whichChoice
Definition: VrmlNodes.h:666
VrmlVariantField * addField(const std::string &fieldName, VrmlFieldTypeId typeId)
Definition: VrmlNodes.h:872
#define HRP_UTIL_EXPORT
boost::intrusive_ptr< VrmlColor > VrmlColorPtr
Definition: VrmlNodes.h:454
boost::array< SFFloat, 2 > SFVec2f
Definition: VrmlNodes.h:54
boost::intrusive_ptr< VrmlTexture > VrmlTexturePtr
Definition: VrmlNodes.h:298
boost::intrusive_ptr< VrmlAppearance > VrmlAppearancePtr
Definition: VrmlNodes.h:277
VrmlNormalPtr normal
Definition: VrmlNodes.h:488
VrmlVariantField * getField(const std::string &fieldName)
Definition: VrmlNodes.h:892
VRML Viewpoint node.
Definition: VrmlNodes.h:171
void setType(VrmlFieldTypeId typeId0)
This can be called once.
Definition: VrmlNodes.cpp:636
int SFInt32
Definition: VrmlNodes.h:49
VRML Proto definition.
Definition: VrmlNodes.h:859
VrmlNodePtr actualNode
Definition: VrmlNodes.h:888
SFVec3f SFColor
Definition: VrmlNodes.h:58
MFString bottomUrl
Definition: VrmlNodes.h:211
SFRotation sfRotation
Definition: VrmlNodes.h:805
VrmlTextureCoordinatePtr texCoord
Definition: VrmlNodes.h:625
boost::intrusive_ptr< VrmlPointLight > VrmlPointLightPtr
Definition: VrmlNodes.h:759
int numComponents
Definition: VrmlNodes.h:64
VRML node which is instance of VRML Prototype.
Definition: VrmlNodes.h:883
boost::intrusive_ptr< VrmlAnchor > VrmlAnchorPtr
Definition: VrmlNodes.h:710
boost::intrusive_ptr< VrmlSphere > VrmlSpherePtr
Definition: VrmlNodes.h:418
TProtoFieldMap fields
Definition: VrmlNodes.h:887
boost::intrusive_ptr< VrmlInline > VrmlInlinePtr
Definition: VrmlNodes.h:274
SFFloat bottomRadius
Definition: VrmlNodes.h:389
SFVec3f center
Definition: VrmlNodes.h:683
std::vector< SFVec2f > MFVec2f
Definition: VrmlNodes.h:71
Base class of VRML Texture nodes.
Definition: VrmlNodes.h:333
MFFloat length
Definition: VrmlNodes.h:448
boost::intrusive_ptr< VrmlNode > VrmlNodePtr
Definition: VrmlNodes.h:155
VrmlTextureTransformPtr textureTransform
Definition: VrmlNodes.h:313
VRML Cylinder node.
Definition: VrmlNodes.h:397
VrmlAppearancePtr appearance
Definition: VrmlNodes.h:289
TProtoFieldMap fields
Definition: VrmlNodes.h:863
VRML Appearance node.
Definition: VrmlNodes.h:306
std::bitset< NUM_VRML_NODE_CATEGORIES > categorySet
Definition: VrmlNodes.h:135
VrmlNormalPtr normal
Definition: VrmlNodes.h:624
SFFloat ambientIntensity
Definition: VrmlNodes.h:755
boost::intrusive_ptr< VrmlWorldInfo > VrmlWorldInfoPtr
Definition: VrmlNodes.h:743
SFFloat radius
Definition: VrmlNodes.h:416
VrmlFontStylePtr fontStyle
Definition: VrmlNodes.h:447
boost::array< SFFloat, 3 > SFVec3f
Definition: VrmlNodes.h:55
boost::intrusive_ptr< VrmlExtrusion > VrmlExtrusionPtr
Definition: VrmlNodes.h:651
SFVec4f SFRotation
Definition: VrmlNodes.h:59
boost::intrusive_ptr< VrmlSpotLight > VrmlSpotLightPtr
Definition: VrmlNodes.h:792
VRML CylinderSensor node.
Definition: VrmlNodes.h:539
std::vector< SFString > MFString
Definition: VrmlNodes.h:77
MFString parameter
Definition: VrmlNodes.h:706
SFColor specularColor
Definition: VrmlNodes.h:327
SFRotation & sfRotation()
Definition: VrmlNodes.h:842
SFFloat maxExtent
Definition: VrmlNodes.h:449
boost::intrusive_ptr< VrmlDirectionalLight > VrmlDirectionalLightPtr
Definition: VrmlNodes.h:773
boost::intrusive_ptr< VrmlIndexedFaceSet > VrmlIndexedFaceSetPtr
Definition: VrmlNodes.h:498
VrmlColorPtr color
Definition: VrmlNodes.h:563
boost::intrusive_ptr< AbstractVrmlGroup > AbstractVrmlGroupPtr
Definition: VrmlNodes.h:232
SFFloat & sfFloat()
Definition: VrmlNodes.h:833
VrmlColorPtr color
Definition: VrmlNodes.h:466
SFNode geometry
Definition: VrmlNodes.h:290
SFBool bottom
Definition: VrmlNodes.h:388
boost::intrusive_ptr< VrmlCoordinate > VrmlCoordinatePtr
Definition: VrmlNodes.h:457
VRML Transform node.
Definition: VrmlNodes.h:254
VRML PointSet node.
Definition: VrmlNodes.h:557
VrmlFieldTypeId typeId()
Definition: VrmlNodes.h:828
boost::intrusive_ptr< VrmlCylinder > VrmlCylinderPtr
Definition: VrmlNodes.h:408
SFVec3f & sfVec3f()
Definition: VrmlNodes.h:840
boost::intrusive_ptr< VrmlPointSet > VrmlPointSetPtr
Definition: VrmlNodes.h:566
VrmlVariantField * getField(const std::string &fieldName)
Definition: VrmlNodes.h:867
VRML ElevationGrid node.
Definition: VrmlNodes.h:608
VRML PixelTexture node.
Definition: VrmlNodes.h:572
std::vector< SFVec4f > MFVec4f
Definition: VrmlNodes.h:73
SFColor & sfColor()
Definition: VrmlNodes.h:846
VrmlColorPtr color
Definition: VrmlNodes.h:623
boost::intrusive_ptr< VrmlViewpoint > VrmlViewpointPtr
Definition: VrmlNodes.h:182
std::vector< SFInt32 > MFInt32
Definition: VrmlNodes.h:69
boost::intrusive_ptr< VrmlFog > VrmlFogPtr
Definition: VrmlNodes.h:732
boost::intrusive_ptr< VrmlTextureCoordinate > VrmlTextureCoordinatePtr
Definition: VrmlNodes.h:478
SFFloat height
Definition: VrmlNodes.h:390
VRML NavigationInfo node.
Definition: VrmlNodes.h:186
std::string defName
Definition: VrmlNodes.h:130
VRML MovieTexture node.
Definition: VrmlNodes.h:588
boost::array< SFFloat, 4 > SFVec4f
Definition: VrmlNodes.h:56
boost::intrusive_ptr< VrmlNormal > VrmlNormalPtr
Definition: VrmlNodes.h:475
VrmlFieldTypeId
Definition: VrmlNodes.h:33
MFString urls
Definition: VrmlNodes.h:272
VrmlNodePtr SFNode
Definition: VrmlNodes.h:157
boost::intrusive_ptr< VrmlMaterial > VrmlMaterialPtr
Definition: VrmlNodes.h:295
MFFloat & mfFloat()
Definition: VrmlNodes.h:834
std::vector< SFTime > MFTime
Definition: VrmlNodes.h:75
SFImage & sfImage()
Definition: VrmlNodes.h:850
VRML Normal node.
Definition: VrmlNodes.h:530
SFVec3f translation
Definition: VrmlNodes.h:263
VRML Extrusion node.
Definition: VrmlNodes.h:634


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Sat May 8 2021 02:42:41