Choreonoid  1.5
VRML.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_UTIL_VRML_H
7 #define CNOID_UTIL_VRML_H
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::Vector2f SFVec2s; // single-precision type used for texture coordinates
36 typedef Eigen::Vector3d SFVec3f;
37 typedef Eigen::Vector3f SFVec3s; // single-precision type used for vertices and normals
38 typedef Eigen::Vector3f SFColor;
39 typedef Eigen::AngleAxisd SFRotation;
40 
41 typedef struct {
42  int width;
43  int height;
45  std::vector<unsigned char> pixels;
46 } SFImage;
47 
48 typedef std::vector<SFInt32> MFInt32;
49 typedef std::vector<SFFloat> MFFloat;
50 typedef std::vector<SFVec2f, Eigen::aligned_allocator<SFVec2f> > MFVec2f;
51 typedef std::vector<SFVec2s> MFVec2s; // single-precision type used for texture coordinates
52 typedef std::vector<SFVec3f> MFVec3f;
53 typedef std::vector<SFVec3s> MFVec3s; // single-precision type used for vertices and normals
54 typedef std::vector<SFRotation> MFRotation;
55 typedef std::vector<SFTime> MFTime;
56 typedef std::vector<SFColor> MFColor;
57 typedef std::vector<SFString> MFString;
58 
59 // see 4.6.3 - 4.6.10 of the VRML97 specification
61 
62  ANY_NODE = -1,
63 
66 
71 
76 
83 
85 
87 
90 
92 };
93 
94 class VRMLNode;
95 
96 inline void intrusive_ptr_add_ref(VRMLNode* obj);
97 inline void intrusive_ptr_release(VRMLNode* obj);
98 
101 {
102 public:
103 
104  VRMLNode();
105  virtual ~VRMLNode();
106 
107  std::string defName;
108 
109  bool isCategoryOf(VRMLNodeCategory category);
110 
111 protected:
112  std::bitset<NUM_VRML_NODE_CATEGORIES> categorySet;
113 
114 private:
115  int refCounter;
116 
117  friend void intrusive_ptr_add_ref(VRMLNode* obj);
118  friend void intrusive_ptr_release(VRMLNode* obj);
119 };
120 
121 inline void intrusive_ptr_add_ref(VRMLNode* obj){
122  obj->refCounter++;
123 }
124 
125 inline void intrusive_ptr_release(VRMLNode* obj){
126  obj->refCounter--;
127  if(obj->refCounter <= 0){
128  delete obj;
129  }
130 }
131 
132 typedef boost::intrusive_ptr<VRMLNode> VRMLNodePtr;
133 
134 typedef VRMLNodePtr SFNode;
135 typedef std::vector<SFNode> MFNode;
136 
137 
139 {
140 public:
141  VRMLUnsupportedNode(const std::string& nodeTypeName);
142  std::string nodeTypeName;
143 };
144 typedef boost::intrusive_ptr<VRMLUnsupportedNode> VRMLUnsupportedNodePtr;
145 
146 
149 {
150 public:
152 
153  VRMLViewpoint();
154 
155  SFRotation orientation;
156  SFFloat fieldOfView;
157  SFBool jump;
158  SFVec3f position;
159  SFString description;
160 };
161 typedef boost::intrusive_ptr<VRMLViewpoint> VRMLViewpointPtr;
162 
163 
166 {
167 public:
169 
170  MFFloat avatarSize;
171  SFBool headlight;
172  SFFloat speed;
173  MFString type;
175 };
176 typedef boost::intrusive_ptr<VRMLNavigationInfo> VRMLNavigationInfoPtr;
177 
178 
181 {
182 public:
183  VRMLBackground();
184 
185  MFFloat groundAngle;
186  MFColor groundColor;
187  MFFloat skyAngle;
188  MFColor skyColor;
189  MFString backUrl;
190  MFString bottomUrl;
191  MFString frontUrl;
192  MFString leftUrl;
193  MFString rightUrl;
194  MFString topUrl;
195 };
196 typedef boost::intrusive_ptr<VRMLBackground> VRMLBackgroundPtr;
197 
198 
200 {
201 public:
203 
204  virtual MFNode& getChildren() = 0;
205  virtual int countChildren() = 0;
206  virtual VRMLNode* getChild(int index) = 0;
207  virtual void replaceChild(int childIndex, VRMLNode* childNode) = 0;
208 
209  void removeChild(int childIndex);
210 };
211 typedef boost::intrusive_ptr<AbstractVRMLGroup> AbstractVRMLGroupPtr;
212 
213 
216 {
217 public:
218  VRMLGroup();
219 
220  virtual MFNode& getChildren();
221  virtual int countChildren();
222  virtual VRMLNode* getChild(int index);
223  virtual void replaceChild(int childIndex, VRMLNode* childNode);
224 
225  SFVec3f bboxCenter;
226  SFVec3f bboxSize;
227  MFNode children;
228 };
229 typedef boost::intrusive_ptr<VRMLGroup> VRMLGroupPtr;
230 
231 
234 {
235 public:
236  VRMLTransform();
237 
238  Eigen::Affine3d toAffine3d();
239 
240  SFVec3f center;
241  SFRotation rotation;
242  SFVec3f scale;
243  SFRotation scaleOrientation;
244  SFVec3f translation;
245 };
246 typedef boost::intrusive_ptr<VRMLTransform> VRMLTransformPtr;
247 
250 {
251 public:
252  VRMLInline();
253  MFString urls;
254 };
255 typedef boost::intrusive_ptr<VRMLInline> VRMLInlinePtr;
256 
257 
259 {
260 public:
262  SFString url;
263  //SFString extension;
264 };
265 typedef boost::intrusive_ptr<VRMLAnotherFormatFile> VRMLAnotherFormatFilePtr;
266 
267 
269 typedef boost::intrusive_ptr<VRMLAppearance> VRMLAppearancePtr;
270 
272 typedef boost::intrusive_ptr<VRMLGeometry> VRMLGeometryPtr;
273 
274 
277 {
278 public:
279  VRMLShape();
280  VRMLAppearancePtr appearance;
281  SFNode geometry;
282 };
283 typedef boost::intrusive_ptr<VRMLShape> VRMLShapePtr;
284 
285 
287 typedef boost::intrusive_ptr<VRMLMaterial> VRMLMaterialPtr;
288 
290 typedef boost::intrusive_ptr<VRMLTexture> VRMLTexturePtr;
291 
293 typedef boost::intrusive_ptr<VRMLTextureTransform> VRMLTextureTransformPtr;
294 
297 {
298 public:
299  VRMLAppearance();
300 
301  VRMLMaterialPtr material;
302  VRMLTexturePtr texture;
303  VRMLTextureTransformPtr textureTransform;
304 };
305 
306 
309 {
310 public:
311  VRMLMaterial();
312 
314  SFColor diffuseColor;
315  SFColor emissiveColor;
316  SFFloat shininess;
317  SFColor specularColor;
318  SFFloat transparency;
319 };
320 
321 
324 {
325 public:
326  VRMLTexture();
327 };
328 
329 
332 {
333 public:
335 
336  MFString url;
337  SFBool repeatS;
338  SFBool repeatT;
339 };
340 typedef boost::intrusive_ptr<VRMLImageTexture> VRMLImageTexturePtr;
341 
342 
345 {
346 public:
348 
350 
351  SFVec2f center;
352  SFFloat rotation;
353  SFVec2f scale;
354  SFVec2f translation;
355 };
356 
359 {
360 public:
361  VRMLGeometry();
362 };
363 
366 {
367 public:
368  VRMLBox();
369  SFVec3f size;
370 };
371 typedef boost::intrusive_ptr<VRMLBox> VRMLBoxPtr;
372 
373 
376 {
377 public:
378  VRMLCone();
379 
380  SFBool bottom;
381  SFFloat bottomRadius;
382  SFFloat height;
383  SFBool side;
384 };
385 typedef boost::intrusive_ptr<VRMLCone> VRMLConePtr;
386 
387 
390 {
391 public:
392  VRMLCylinder();
393 
394  SFBool bottom;
395  SFFloat height;
396  SFFloat radius;
397  SFBool side;
398  SFBool top;
399 };
400 typedef boost::intrusive_ptr<VRMLCylinder> VRMLCylinderPtr;
401 
402 
405 {
406 public:
407  VRMLSphere();
408  SFFloat radius;
409 };
410 typedef boost::intrusive_ptr<VRMLSphere> VRMLSpherePtr;
411 
412 
415 {
416 public:
417  VRMLFontStyle();
418 
419  MFString family;
420  SFBool horizontal;
421  MFString justify;
422  SFString language;
423  SFBool leftToRight;
424  SFFloat size;
425  SFFloat spacing;
426  SFString style;
427  SFBool topToBottom;
428 };
429 typedef boost::intrusive_ptr<VRMLFontStyle> VRMLFontStylePtr;
430 
431 
434 {
435 public:
436  VRMLText();
437 
438  MFString fstring;
439  VRMLFontStylePtr fontStyle;
440  MFFloat length;
441  SFFloat maxExtent;
442 };
443 typedef boost::intrusive_ptr<VRMLText> VRMLTextPtr;
444 
445 
446 class VRMLColor;
447 typedef boost::intrusive_ptr<VRMLColor> VRMLColorPtr;
448 
450 typedef boost::intrusive_ptr<VRMLCoordinate> VRMLCoordinatePtr;
451 
454 {
455 public:
457 
458  VRMLColorPtr color;
459  VRMLCoordinatePtr coord;
460  MFInt32 colorIndex;
462  MFInt32 coordIndex;
463 };
464 typedef boost::intrusive_ptr<VRMLIndexedLineSet> VRMLIndexedLineSetPtr;
465 
466 
468 typedef boost::intrusive_ptr<VRMLNormal> VRMLNormalPtr;
469 
471 typedef boost::intrusive_ptr<VRMLTextureCoordinate> VRMLTextureCoordinatePtr;
472 
473 
476 {
477 public:
479 
480  VRMLNormalPtr normal;
481  VRMLTextureCoordinatePtr texCoord;
482  SFBool ccw;
483  SFBool convex;
484  SFFloat creaseAngle;
485  MFInt32 normalIndex;
487  SFBool solid;
488  MFInt32 texCoordIndex;
489 };
490 typedef boost::intrusive_ptr<VRMLIndexedFaceSet> VRMLIndexedFaceSetPtr;
491 
492 
495 {
496 public:
497  VRMLColor();
498 
499  MFColor color;
500 };
501 
502 
505 {
506 public:
507  VRMLCoordinate();
508  MFVec3s point;
509 };
510 
511 
514 {
515 public:
517  MFVec2s point;
518 };
519 
520 
523 {
524 public:
525  VRMLNormal();
526  MFVec3s vector;
527 };
528 
529 
532 {
533 public:
535 
536  SFBool autoOffset;
537  SFFloat diskAngle;
538  SFBool enabled;
539  SFFloat maxAngle;
540  SFFloat minAngle;
541  SFFloat offset;
542 };
543 typedef boost::intrusive_ptr<VRMLCylinderSensor> VRMLCylinderSensorPtr;
544 
545 
548 {
549 public:
550  VRMLPointSet();
551 
552  VRMLCoordinatePtr coord;
553  VRMLColorPtr color;
554 };
555 
556 typedef boost::intrusive_ptr<VRMLPointSet> VRMLPointSetPtr;
557 
558 
561 {
562 public:
564 
566  SFBool repeatS;
567  SFBool repeatT;
568 };
569 
570 typedef boost::intrusive_ptr<VRMLPixelTexture> VRMLPixelTexturePtr;
571 
572 
575 {
576 public:
578 
579  MFString url;
580  SFBool loop;
581  SFFloat speed;
584  SFBool repeatS;
585  SFBool repeatT;
586 };
587 
588 typedef boost::intrusive_ptr<VRMLMovieTexture> VRMLMovieTexturePtr;
589 
590 
593 {
594 public:
596 
597  SFInt32 xDimension;
598  SFInt32 zDimension;
599  SFFloat xSpacing;
600  SFFloat zSpacing;
601  MFFloat height;
602  SFBool ccw;
604  SFFloat creaseAngle;
606  SFBool solid;
607  VRMLColorPtr color;
608  VRMLNormalPtr normal;
609  VRMLTextureCoordinatePtr texCoord;
610 };
611 
612 typedef boost::intrusive_ptr<VRMLElevationGrid> VRMLElevationGridPtr;
613 
614 
617 {
618 public:
619  VRMLExtrusion();
620 
621  MFVec2f crossSection;
622  MFVec3f spine;
623  MFVec2f scale;
624  MFRotation orientation;
625  SFBool beginCap;
626  SFBool endCap;
627  SFBool solid;
628  SFBool ccw;
629  SFBool convex;
630  SFFloat creaseAngle;
631 };
632 
633 typedef boost::intrusive_ptr<VRMLExtrusion> VRMLExtrusionPtr;
634 
635 
637 {
638 public:
639  VRMLSwitch();
640 
641  virtual MFNode& getChildren();
642  virtual int countChildren();
643  virtual VRMLNode* getChild(int index);
644  virtual void replaceChild(int childIndex, VRMLNode* childNode);
645 
646  MFNode choice;
647  SFInt32 whichChoice;
648 };
649 
650 typedef boost::intrusive_ptr<VRMLSwitch> VRMLSwitchPtr;
651 
652 
654 {
655 public:
656  VRMLLOD();
657 
658  virtual MFNode& getChildren();
659  virtual int countChildren();
660  virtual VRMLNode* getChild(int index);
661  virtual void replaceChild(int childIndex, VRMLNode* childNode);
662 
663  MFFloat range;
664  SFVec3f center;
665  MFNode level;
666 };
667 
668 typedef boost::intrusive_ptr<VRMLLOD> VRMLLODPtr;
669 
670 
672 {
673 public:
674  VRMLCollision();
675  SFBool collide;
676  SFNode proxy;
677 };
678 
679 typedef boost::intrusive_ptr<VRMLCollision> VRMLCollisionPtr;
680 
681 
683 {
684 public:
685  VRMLAnchor();
686  SFString description;
687  MFString parameter;
688  MFString url;
689 };
690 
691 typedef boost::intrusive_ptr<VRMLAnchor> VRMLAnchorPtr;
692 
693 
695 {
696 public:
697  VRMLBillboard();
698  SFVec3f axisOfRotation;
699 };
700 
701 typedef boost::intrusive_ptr<VRMLBillboard> VRMLBillboardPtr;
702 
703 
705 {
706 public:
707  VRMLFog();
708  SFColor color;
710  SFString fogType;
711 };
712 
713 typedef boost::intrusive_ptr<VRMLFog> VRMLFogPtr;
714 
715 
717 {
718 public:
719  VRMLWorldInfo();
720  SFString title;
721  MFString info;
722 };
723 
724 typedef boost::intrusive_ptr<VRMLWorldInfo> VRMLWorldInfoPtr;
725 
726 
728 {
729 public:
730  VRMLLight();
731  SFBool on;
732  SFColor color;
733  SFFloat intensity;
735 };
736 
737 typedef boost::intrusive_ptr<VRMLLight> VRMLLightPtr;
738 
739 
741 {
742 public:
743  VRMLPointLight();
744  SFVec3f location;
745  SFFloat radius;
746  SFVec3f attenuation;
747 };
748 
749 typedef boost::intrusive_ptr<VRMLPointLight> VRMLPointLightPtr;
750 
751 
753 {
754 public:
756  SFVec3f direction;
757 };
758 
759 typedef boost::intrusive_ptr<VRMLDirectionalLight> VRMLDirectionalLightPtr;
760 
761 
763 {
764 public:
765  VRMLSpotLight();
766  SFVec3f direction;
767  SFFloat beamWidth;
768  SFFloat cutOffAngle;
769 };
770 
771 typedef boost::intrusive_ptr<VRMLSpotLight> VRMLSpotLightPtr;
772 
773 typedef boost::variant<SFBool,
776 
782 };
783 
784 typedef std::map <std::string, VRMLVariantField> VRMLProtoFieldMap;
785 typedef std::pair<std::string, VRMLVariantField> VRMLProtoFieldPair;
786 
787 CNOID_EXPORT const char* labelOfVRMLfieldTypeId(const std::type_info& fieldType);
788 
789 template<typename TValue> inline const char* labelOfVRMLfieldType() {
790  return labelOfVRMLfieldTypeId(typeid(TValue));
791 }
792 
795 {
796 public:
797  std::string protoName;
798  VRMLProtoFieldMap fields;
799 
800  VRMLProto(const std::string& n);
801 
802  inline VRMLVariantField* findField(const std::string& fieldName) {
803  VRMLProtoFieldMap::iterator p = fields.find(fieldName);
804  return (p != fields.end()) ? &p->second : 0;
805  }
806 
807  inline VRMLVariantField& field(const std::string& fieldName){
808  return fields[fieldName];
809  }
810 
811  /*
812  inline VRMLVariantField& addField(const std::string& fieldName, VRMLFieldTypeId typeId){
813  VRMLVariantField* field = &(fields[fieldName]);
814  field->setType(typeId);
815  return field;
816  }
817  */
818 
819 };
820 typedef boost::intrusive_ptr<VRMLProto> VRMLProtoPtr;
821 
822 
825 {
826 public:
827  VRMLProtoPtr proto;
828  VRMLProtoFieldMap fields;
829  VRMLNodePtr actualNode;
830 
831  VRMLProtoInstance(VRMLProtoPtr proto0);
832 
833  inline VRMLVariantField* findField(const std::string& fieldName) {
834  VRMLProtoFieldMap::iterator p = fields.find(fieldName);
835  return (p != fields.end()) ? &p->second : 0;
836  }
837 };
838 typedef boost::intrusive_ptr<VRMLProtoInstance> VRMLProtoInstancePtr;
839 
845 template<class VRMLNodeType>
846 inline boost::intrusive_ptr<VRMLNodeType> dynamic_node_cast(VRMLNodePtr node) {
847  VRMLProtoInstancePtr protoInstance = boost::dynamic_pointer_cast<VRMLProtoInstance>(node);
848  if(protoInstance){
849  return boost::dynamic_pointer_cast<VRMLNodeType>(protoInstance->actualNode);
850  } else {
851  return boost::dynamic_pointer_cast<VRMLNodeType>(node);
852  }
853 }
854 
855 #ifdef CNOID_BACKWARD_COMPATIBILITY
856 typedef VRMLNodeCategory VrmlNodeCategory;
857 typedef VRMLNode VrmlNode;
858 typedef VRMLNodePtr VrmlNodePtr;
859 typedef VRMLUnsupportedNode VrmlUnsupportedNode;
860 typedef VRMLUnsupportedNodePtr VrmlUnsupportedNodePtr;
861 typedef VRMLViewpoint VrmlViewpoint;
862 typedef VRMLViewpointPtr VrmlViewpointPtr;
863 typedef VRMLNavigationInfo VrmlNavigationInfo;
864 typedef VRMLNavigationInfoPtr VrmlNavigationInfoPtr;
865 typedef VRMLBackground VrmlBackground;
866 typedef VRMLBackgroundPtr VrmlBackgroundPtr;
867 typedef AbstractVRMLGroup AbstractVrmlGroup;
868 typedef AbstractVRMLGroupPtr AbstractVrmlGroupPtr;
869 typedef VRMLGroup VrmlGroup;
870 typedef VRMLGroupPtr VrmlGroupPtr;
871 typedef VRMLTransform VrmlTransform;
872 typedef VRMLTransformPtr VrmlTransformPtr;
873 typedef VRMLInline VrmlInline;
874 typedef VRMLInlinePtr VrmlInlinePtr;
875 typedef VRMLShape VrmlShape;
876 typedef VRMLShapePtr VrmlShapePtr;
877 typedef VRMLAppearance VrmlAppearance;
878 typedef VRMLAppearancePtr VrmlAppearancePtr;
879 typedef VRMLMaterial VrmlMaterial;
880 typedef VRMLMaterialPtr VrmlMaterialPtr;
881 typedef VRMLTexture VrmlTexture;
882 typedef VRMLTexturePtr VrmlTexturePtr;
883 typedef VRMLImageTexture VrmlImageTexture;
884 typedef VRMLImageTexturePtr VrmlImageTexturePtr;
885 typedef VRMLTextureTransform VrmlTextureTransform;
886 typedef VRMLTextureTransformPtr VrmlTextureTransformPtr;
887 typedef VRMLGeometry VrmlGeometry;
888 typedef VRMLGeometryPtr VrmlGeometryPtr;
889 typedef VRMLBox VrmlBox;
890 typedef VRMLBoxPtr VrmlBoxPtr;
891 typedef VRMLCone VrmlCone;
892 typedef VRMLConePtr VrmlConePtr;
893 typedef VRMLCylinder VrmlCylinder;
894 typedef VRMLCylinderPtr VrmlCylinderPtr;
895 typedef VRMLSphere VrmlSphere;
896 typedef VRMLSpherePtr VrmlSpherePtr;
897 typedef VRMLFontStyle VrmlFontStyle;
898 typedef VRMLFontStylePtr VrmlFontStylePtr;
899 typedef VRMLText VrmlText;
900 typedef VRMLTextPtr VrmlTextPtr;
901 typedef VRMLIndexedLineSet VrmlIndexedLineSet;
902 typedef VRMLIndexedLineSetPtr VrmlIndexedLineSetPtr;
903 typedef VRMLIndexedFaceSet VrmlIndexedFaceSet;
904 typedef VRMLIndexedFaceSetPtr VrmlIndexedFaceSetPtr;
905 typedef VRMLColor VrmlColor;
906 typedef VRMLColorPtr VrmlColorPtr;
907 typedef VRMLCoordinate VrmlCoordinate;
908 typedef VRMLCoordinatePtr VrmlCoordinatePtr;
909 typedef VRMLTextureCoordinate VrmlTextureCoordinate;
910 typedef VRMLTextureCoordinatePtr VrmlTextureCoordinatePtr;
911 typedef VRMLNormal VrmlNormal;
912 typedef VRMLNormalPtr VrmlNormalPtr;
913 typedef VRMLCylinderSensor VrmlCylinderSensor;
914 typedef VRMLCylinderSensorPtr VrmlCylinderSensorPtr;
915 typedef VRMLPointSet VrmlPointSet;
916 typedef VRMLPointSetPtr VrmlPointSetPtr;
917 typedef VRMLPixelTexture VrmlPixelTexture;
918 typedef VRMLPixelTexturePtr VrmlPixelTexturePtr;
919 typedef VRMLMovieTexture VrmlMovieTexture;
920 typedef VRMLMovieTexturePtr VrmlMovieTexturePtr;
921 typedef VRMLElevationGrid VrmlElevationGrid;
922 typedef VRMLElevationGridPtr VrmlElevationGridPtr;
923 typedef VRMLExtrusion VrmlExtrusion;
924 typedef VRMLExtrusionPtr VrmlExtrusionPtr;
925 typedef VRMLSwitch VrmlSwitch;
926 typedef VRMLSwitchPtr VrmlSwitchPtr;
927 typedef VRMLLOD VrmlLOD;
928 typedef VRMLLODPtr VrmlLODPtr;
929 typedef VRMLCollision VrmlCollision;
930 typedef VRMLCollisionPtr VrmlCollisionPtr;
931 typedef VRMLAnchor VrmlAnchor;
932 typedef VRMLAnchorPtr VrmlAnchorPtr;
933 typedef VRMLBillboard VrmlBillboard;
934 typedef VRMLBillboardPtr VrmlBillboardPtr;
935 typedef VRMLFog VrmlFog;
936 typedef VRMLFogPtr VrmlFogPtr;
937 typedef VRMLWorldInfo VrmlWorldInfo;
938 typedef VRMLWorldInfoPtr VrmlWorldInfoPtr;
939 typedef VRMLPointLight VrmlPointLight;
940 typedef VRMLPointLightPtr VrmlPointLightPtr;
941 typedef VRMLDirectionalLight VrmlDirectionalLight;
942 typedef VRMLDirectionalLightPtr VrmlDirectionalLightPtr;
943 typedef VRMLSpotLight VrmlSpotLight;
944 typedef VRMLSpotLightPtr VrmlSpotLightPtr;
945 typedef VRMLProto VrmlProto;
946 typedef VRMLProtoPtr VrmlProtoPtr;
947 typedef VRMLProtoInstance VrmlProtoInstance;
948 typedef VRMLProtoInstancePtr VrmlProtoInstancePtr;
949 typedef VRMLVariantField VrmlVariantField;
950 #endif
951 
952 };
953 
954 #endif
SFColor diffuseColor
Definition: VRML.h:314
boost::intrusive_ptr< VRMLIndexedLineSet > VRMLIndexedLineSetPtr
Definition: VRML.h:464
SFFloat creaseAngle
Definition: VRML.h:604
SFBool autoOffset
Definition: VRML.h:536
MFFloat range
Definition: VRML.h:663
SFVec3f bboxCenter
Definition: VRML.h:225
Definition: VRML.h:74
SFFloat bottomRadius
Definition: VRML.h:381
MFVec3f spine
Definition: VRML.h:622
Eigen::Vector3d SFVec3f
Definition: VRML.h:36
boost::intrusive_ptr< VRMLAnchor > VRMLAnchorPtr
Definition: VRML.h:691
Definition: VRML.h:77
std::vector< SFVec2s > MFVec2s
Definition: VRML.h:51
VRMLVariantField * findField(const std::string &fieldName)
Definition: VRML.h:833
Base class of VRML Texture nodes.
Definition: VRML.h:323
SFFloat intensity
Definition: VRML.h:733
VRML Group node.
Definition: VRML.h:215
SFVec3f scale
Definition: VRML.h:242
SFBool bottom
Definition: VRML.h:394
Definition: VRML.h:27
SFString title
Definition: VRML.h:720
boost::intrusive_ptr< VRMLProto > VRMLProtoPtr
Definition: VRML.h:820
Definition: VRML.h:89
Definition: VRML.h:69
SFFloat radius
Definition: VRML.h:396
Definition: VRML.h:780
Eigen::Vector2d SFVec2f
Definition: VRML.h:34
boost::intrusive_ptr< VRMLWorldInfo > VRMLWorldInfoPtr
Definition: VRML.h:724
SFString description
Definition: VRML.h:159
MFInt32 texCoordIndex
Definition: VRML.h:488
Definition: VRML.h:752
Definition: VRML.h:779
MFVec2s point
Definition: VRML.h:517
VRML Cylinder node.
Definition: VRML.h:389
VRML Appearance node.
Definition: VRML.h:296
VRML Coordinate node.
Definition: VRML.h:504
Definition: VRML.h:81
ref_ptr< T > dynamic_pointer_cast(ref_ptr< U > const &p)
Definition: Referenced.h:280
std::vector< SFColor > MFColor
Definition: VRML.h:56
VRML CylinderSensor node.
Definition: VRML.h:531
VRML Box node.
Definition: VRML.h:365
Definition: VRML.h:779
MFString backUrl
Definition: VRML.h:189
SFBool repeatS
Definition: VRML.h:337
std::vector< SFRotation > MFRotation
Definition: VRML.h:54
SFColor color
Definition: VRML.h:732
SFImage image
Definition: VRML.h:565
SFVec3f direction
Definition: VRML.h:766
SFBool side
Definition: VRML.h:397
boost::intrusive_ptr< VRMLSphere > VRMLSpherePtr
Definition: VRML.h:410
boost::intrusive_ptr< VRMLGeometry > VRMLGeometryPtr
Definition: VRML.h:271
Eigen::Vector2f SFVec2s
Definition: VRML.h:35
SFBool solid
Definition: VRML.h:606
SFFloat height
Definition: VRML.h:395
boost::intrusive_ptr< VRMLCollision > VRMLCollisionPtr
Definition: VRML.h:679
MFNode children
Definition: VRML.h:227
SFBool ccw
Definition: VRML.h:482
VRML Cone node.
Definition: VRML.h:375
Definition: VRML.h:779
SFFloat creaseAngle
Definition: VRML.h:630
MFString justify
Definition: VRML.h:421
std::string protoName
Definition: VRML.h:797
SFBool repeatS
Definition: VRML.h:584
SFVec3f center
Definition: VRML.h:240
Definition: VRML.h:636
boost::intrusive_ptr< VRMLText > VRMLTextPtr
Definition: VRML.h:443
boost::intrusive_ptr< VRMLNavigationInfo > VRMLNavigationInfoPtr
Definition: VRML.h:176
MFVec3s vector
Definition: VRML.h:526
boost::intrusive_ptr< AbstractVRMLGroup > AbstractVRMLGroupPtr
Definition: VRML.h:211
SFTime()
Definition: VRML.h:29
SFFloat maxAngle
Definition: VRML.h:539
Definition: VRML.h:70
SFBool beginCap
Definition: VRML.h:625
Definition: VRML.h:780
SFBool on
Definition: VRML.h:731
Definition: VRML.h:75
boost::intrusive_ptr< VRMLAnotherFormatFile > VRMLAnotherFormatFilePtr
Definition: VRML.h:265
MFRotation orientation
Definition: VRML.h:624
Definition: VRML.h:779
SFInt32 xDimension
Definition: VRML.h:597
Definition: VRML.h:778
Definition: VRML.h:653
boost::intrusive_ptr< VRMLAppearance > VRMLAppearancePtr
Definition: VRML.h:268
VRMLNormalPtr normal
Definition: VRML.h:480
boost::intrusive_ptr< VRMLElevationGrid > VRMLElevationGridPtr
Definition: VRML.h:612
VRML ImageTexture node.
Definition: VRML.h:331
SFFloat visibilityRange
Definition: VRML.h:709
const char * labelOfVRMLfieldType()
Definition: VRML.h:789
Definition: VRML.h:80
MFString fstring
Definition: VRML.h:438
boost::intrusive_ptr< VRMLViewpoint > VRMLViewpointPtr
Definition: VRML.h:161
VRMLTextureCoordinatePtr texCoord
Definition: VRML.h:609
Abstract base class of all vrml nodes.
Definition: VRML.h:100
boost::intrusive_ptr< VRMLCylinder > VRMLCylinderPtr
Definition: VRML.h:400
boost::intrusive_ptr< VRMLUnsupportedNode > VRMLUnsupportedNodePtr
Definition: VRML.h:144
SFFloat ambientIntensity
Definition: VRML.h:734
SFBool repeatT
Definition: VRML.h:585
boost::intrusive_ptr< VRMLBox > VRMLBoxPtr
Definition: VRML.h:371
MFString frontUrl
Definition: VRML.h:191
SFTime stopTime
Definition: VRML.h:583
SFFloat diskAngle
Definition: VRML.h:537
Definition: VRML.h:779
Eigen::Vector3f SFColor
Definition: VRML.h:38
VRML NavigationInfo node.
Definition: VRML.h:165
SFFloat zSpacing
Definition: VRML.h:600
VRML TextureCoordinate node.
Definition: VRML.h:513
boost::intrusive_ptr< VRMLExtrusion > VRMLExtrusionPtr
Definition: VRML.h:633
SFBool solid
Definition: VRML.h:487
SFBool repeatS
Definition: VRML.h:566
boost::intrusive_ptr< VRMLSwitch > VRMLSwitchPtr
Definition: VRML.h:650
VRML Color node.
Definition: VRML.h:494
SFBool normalPerVertex
Definition: VRML.h:486
std::vector< SFInt32 > MFInt32
Definition: VRML.h:48
SFFloat minAngle
Definition: VRML.h:540
boost::intrusive_ptr< VRMLProtoInstance > VRMLProtoInstancePtr
Definition: VRML.h:838
Definition: VRML.h:199
std::vector< unsigned char > pixels
Definition: VRML.h:45
SFColor color
Definition: VRML.h:708
SFBool bottom
Definition: VRML.h:380
VRMLNodePtr SFNode
Definition: VRML.h:134
boost::intrusive_ptr< VRMLTextureCoordinate > VRMLTextureCoordinatePtr
Definition: VRML.h:470
Definition: VRML.h:779
SFVec3f direction
Definition: VRML.h:756
VRML Viewpoint node.
Definition: VRML.h:148
SFBool repeatT
Definition: VRML.h:338
SFString style
Definition: VRML.h:426
SFBool colorPerVertex
Definition: VRML.h:461
Base class of VRML geometry nodes.
Definition: VRML.h:358
SFVec3f axisOfRotation
Definition: VRML.h:698
boost::intrusive_ptr< VRMLNodeType > dynamic_node_cast(VRMLNodePtr node)
Definition: VRML.h:846
VRMLTextureTransformPtr textureTransform
Definition: VRML.h:303
std::vector< SFVec3s > MFVec3s
Definition: VRML.h:53
MFColor groundColor
Definition: VRML.h:186
SFFloat height
Definition: VRML.h:382
MFString rightUrl
Definition: VRML.h:193
boost::intrusive_ptr< VRMLColor > VRMLColorPtr
Definition: VRML.h:446
void intrusive_ptr_add_ref(VRMLNode *obj)
Definition: VRML.h:121
VRML node which is instance of VRML Prototype.
Definition: VRML.h:824
MFString bottomUrl
Definition: VRML.h:190
Eigen::Vector3f SFVec3s
Definition: VRML.h:37
void intrusive_ptr_release(VRMLNode *obj)
Definition: VRML.h:125
boost::intrusive_ptr< VRMLMovieTexture > VRMLMovieTexturePtr
Definition: VRML.h:588
SFFloat transparency
Definition: VRML.h:318
VRML PixelTexture node.
Definition: VRML.h:560
SFVec2f translation
Definition: VRML.h:354
SFFloat radius
Definition: VRML.h:745
SFFloat creaseAngle
Definition: VRML.h:484
VRMLProtoFieldMap fields
Definition: VRML.h:828
Eigen::AngleAxisd SFRotation
Definition: VRML.h:39
int height
Definition: VRML.h:43
MFString urls
Definition: VRML.h:253
SFVec3f translation
Definition: VRML.h:244
SFFloat xSpacing
Definition: VRML.h:599
VRMLColorPtr color
Definition: VRML.h:553
VRML Material node.
Definition: VRML.h:308
boost::intrusive_ptr< VRMLPointLight > VRMLPointLightPtr
Definition: VRML.h:749
SFFloat cutOffAngle
Definition: VRML.h:768
MFInt32 coordIndex
Definition: VRML.h:462
SFVec3f size
Definition: VRML.h:369
std::map< std::string, VRMLVariantField > VRMLProtoFieldMap
Definition: VRML.h:784
boost::intrusive_ptr< VRMLTransform > VRMLTransformPtr
Definition: VRML.h:246
MFString family
Definition: VRML.h:419
Definition: VRML.h:780
Definition: VRML.h:781
Definition: VRML.h:780
VRMLVariantField * findField(const std::string &fieldName)
Definition: VRML.h:802
VRML Normal node.
Definition: VRML.h:522
MFVec2f scale
Definition: VRML.h:623
boost::intrusive_ptr< VRMLTexture > VRMLTexturePtr
Definition: VRML.h:289
MFString info
Definition: VRML.h:721
double SFFloat
Definition: VRML.h:23
Definition: VRML.h:68
SFBool headlight
Definition: VRML.h:171
std::string defName
Definition: VRML.h:107
SFVec3f location
Definition: VRML.h:744
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Definition: VRML.h:347
VRML Transform node.
Definition: VRML.h:233
boost::intrusive_ptr< VRMLCone > VRMLConePtr
Definition: VRML.h:385
Definition: VRML.h:82
int width
Definition: VRML.h:42
MFString url
Definition: VRML.h:688
VRML PointSet node.
Definition: VRML.h:547
Definition: VRML.h:780
boost::intrusive_ptr< VRMLNode > VRMLNodePtr
Definition: VRML.h:132
SFBool collide
Definition: VRML.h:675
SFTime startTime
Definition: VRML.h:582
boost::intrusive_ptr< VRMLShape > VRMLShapePtr
Definition: VRML.h:283
boost::intrusive_ptr< VRMLNormal > VRMLNormalPtr
Definition: VRML.h:467
std::string SFString
Definition: VRML.h:24
SFBool ccw
Definition: VRML.h:602
SFRotation scaleOrientation
Definition: VRML.h:243
VRMLNodePtr actualNode
Definition: VRML.h:829
MFNode choice
Definition: VRML.h:646
SFFloat fieldOfView
Definition: VRML.h:156
SFVec2f center
Definition: VRML.h:351
SFColor emissiveColor
Definition: VRML.h:315
SFVec3f center
Definition: VRML.h:664
Definition: VRML.h:780
std::vector< SFTime > MFTime
Definition: VRML.h:55
boost::intrusive_ptr< VRMLCylinderSensor > VRMLCylinderSensorPtr
Definition: VRML.h:543
SFFloat maxExtent
Definition: VRML.h:441
SFVec2f scale
Definition: VRML.h:353
VRMLFontStylePtr fontStyle
Definition: VRML.h:439
VRML FontStyle node.
Definition: VRML.h:414
std::vector< SFVec3f > MFVec3f
Definition: VRML.h:52
SFString url
Definition: VRML.h:262
boost::intrusive_ptr< VRMLGroup > VRMLGroupPtr
Definition: VRML.h:229
MFColor color
Definition: VRML.h:499
MFInt32 normalIndex
Definition: VRML.h:485
VRML Extrusion node.
Definition: VRML.h:616
int SFInt32
Definition: VRML.h:22
VRMLProtoPtr proto
Definition: VRML.h:827
MFString type
Definition: VRML.h:173
Definition: VRML.h:72
MFInt32 colorIndex
Definition: VRML.h:460
Definition: VRML.h:682
VRML Text node.
Definition: VRML.h:433
MFString leftUrl
Definition: VRML.h:192
std::pair< std::string, VRMLVariantField > VRMLProtoFieldPair
Definition: VRML.h:785
SFRotation orientation
Definition: VRML.h:155
VRMLProtoFieldMap fields
Definition: VRML.h:798
boost::intrusive_ptr< VRMLSpotLight > VRMLSpotLightPtr
Definition: VRML.h:771
SFBool loop
Definition: VRML.h:580
Definition: VRML.h:88
SFBool normalPerVertex
Definition: VRML.h:605
VRMLVariantField & field(const std::string &fieldName)
Definition: VRML.h:807
VRMLCoordinatePtr coord
Definition: VRML.h:459
boost::intrusive_ptr< VRMLIndexedFaceSet > VRMLIndexedFaceSetPtr
Definition: VRML.h:490
MFFloat height
Definition: VRML.h:601
Definition: VRML.h:79
boost::intrusive_ptr< VRMLTextureTransform > VRMLTextureTransformPtr
Definition: VRML.h:292
SFFloat spacing
Definition: VRML.h:425
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
VRML ElevationGrid node.
Definition: VRML.h:592
SFFloat size
Definition: VRML.h:424
std::vector< SFFloat > MFFloat
Definition: VRML.h:49
VRML IndexedFaseSet node.
Definition: VRML.h:475
std::vector< SFVec2f, Eigen::aligned_allocator< SFVec2f > > MFVec2f
Definition: VRML.h:50
double value
Definition: VRML.h:28
Definition: VRML.h:740
Definition: VRML.h:780
SFBool convex
Definition: VRML.h:483
VRML MovieTexture node.
Definition: VRML.h:574
VRMLNormalPtr normal
Definition: VRML.h:608
VRMLAppearancePtr appearance
Definition: VRML.h:280
Definition: VRML.h:704
bool SFBool
Definition: VRML.h:21
SFFloat rotation
Definition: VRML.h:352
SFRotation rotation
Definition: VRML.h:241
Definition: VRML.h:73
SFString fogType
Definition: VRML.h:710
Definition: VRML.h:694
Definition: VRML.h:78
boost::intrusive_ptr< VRMLBackground > VRMLBackgroundPtr
Definition: VRML.h:196
SFFloat ambientIntensity
Definition: VRML.h:313
Definition: VRML.h:716
SFInt32 whichChoice
Definition: VRML.h:647
Definition: VRML.h:779
CNOID_EXPORT const char * labelOfVRMLfieldTypeId(const std::type_info &fieldType)
Definition: VRML.cpp:12
boost::intrusive_ptr< VRMLPointSet > VRMLPointSetPtr
Definition: VRML.h:556
MFFloat avatarSize
Definition: VRML.h:170
SFBool side
Definition: VRML.h:383
MFString parameter
Definition: VRML.h:687
SFColor specularColor
Definition: VRML.h:317
boost::intrusive_ptr< VRMLPixelTexture > VRMLPixelTexturePtr
Definition: VRML.h:570
SFBool repeatT
Definition: VRML.h:567
Definition: VRML.h:258
SFNode proxy
Definition: VRML.h:676
VRMLMaterialPtr material
Definition: VRML.h:301
SFFloat speed
Definition: VRML.h:581
SFBool horizontal
Definition: VRML.h:420
boost::intrusive_ptr< VRMLFog > VRMLFogPtr
Definition: VRML.h:713
SFBool topToBottom
Definition: VRML.h:427
boost::intrusive_ptr< VRMLInline > VRMLInlinePtr
Definition: VRML.h:255
VRMLFieldTypeId
Definition: VRML.h:777
VRMLNodeCategory
Definition: VRML.h:60
SFFloat offset
Definition: VRML.h:541
Definition: VRML.h:65
Definition: VRML.h:671
VRML IndexedLineSet node.
Definition: VRML.h:453
Definition: VRML.h:84
Definition: VRML.h:779
VRML Inline node.
Definition: VRML.h:249
SFVec3f position
Definition: VRML.h:158
Definition: VRML.h:780
SFFloat shininess
Definition: VRML.h:316
boost::variant< SFBool, SFInt32, SFFloat, SFVec2f, SFVec3f, SFRotation, SFColor, SFTime, SFString, SFNode, SFImage, MFInt32, MFFloat, MFVec2f, MFVec3f, MFRotation, MFColor, MFTime, MFString, MFNode > VRMLVariantField
Definition: VRML.h:775
SFBool top
Definition: VRML.h:398
std::string nodeTypeName
Definition: VRML.h:142
std::vector< SFString > MFString
Definition: VRML.h:57
boost::intrusive_ptr< VRMLDirectionalLight > VRMLDirectionalLightPtr
Definition: VRML.h:759
boost::intrusive_ptr< VRMLCoordinate > VRMLCoordinatePtr
Definition: VRML.h:449
MFVec2f crossSection
Definition: VRML.h:621
MFString topUrl
Definition: VRML.h:194
Definition: VRML.h:41
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
SFBool solid
Definition: VRML.h:627
SFBool ccw
Definition: VRML.h:628
SFInt32 zDimension
Definition: VRML.h:598
MFString url
Definition: VRML.h:579
boost::intrusive_ptr< VRMLMaterial > VRMLMaterialPtr
Definition: VRML.h:286
MFNode level
Definition: VRML.h:665
VRML Shape node.
Definition: VRML.h:276
Definition: VRML.h:780
Definition: VRML.h:91
VRMLColorPtr color
Definition: VRML.h:458
MFFloat groundAngle
Definition: VRML.h:185
double operator=(double time)
Definition: VRML.h:31
SFBool jump
Definition: VRML.h:157
SFFloat beamWidth
Definition: VRML.h:767
VRMLCoordinatePtr coord
Definition: VRML.h:552
std::bitset< NUM_VRML_NODE_CATEGORIES > categorySet
Definition: VRML.h:112
SFBool leftToRight
Definition: VRML.h:423
SFString language
Definition: VRML.h:422
Definition: VRML.h:779
SFBool colorPerVertex
Definition: VRML.h:603
MFString url
Definition: VRML.h:336
boost::intrusive_ptr< VRMLLOD > VRMLLODPtr
Definition: VRML.h:668
boost::intrusive_ptr< VRMLFontStyle > VRMLFontStylePtr
Definition: VRML.h:429
Definition: VRML.h:779
int numComponents
Definition: VRML.h:44
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Definition: VRML.h:151
Definition: VRML.h:762
VRML TextureTransform node.
Definition: VRML.h:344
boost::intrusive_ptr< VRMLLight > VRMLLightPtr
Definition: VRML.h:737
Definition: VRML.h:138
MFFloat skyAngle
Definition: VRML.h:187
VRML Sphere node.
Definition: VRML.h:404
boost::intrusive_ptr< VRMLBillboard > VRMLBillboardPtr
Definition: VRML.h:701
SFVec3f attenuation
Definition: VRML.h:746
VRML Background node.
Definition: VRML.h:180
Definition: VRML.h:64
Definition: VRML.h:67
SFFloat visibilityLimit
Definition: VRML.h:174
MFFloat length
Definition: VRML.h:440
SFVec3f bboxSize
Definition: VRML.h:226
SFString description
Definition: VRML.h:686
std::vector< SFNode > MFNode
Definition: VRML.h:135
SFBool convex
Definition: VRML.h:629
VRMLColorPtr color
Definition: VRML.h:607
MFColor skyColor
Definition: VRML.h:188
SFFloat radius
Definition: VRML.h:408
boost::intrusive_ptr< VRMLImageTexture > VRMLImageTexturePtr
Definition: VRML.h:340
SFNode geometry
Definition: VRML.h:281
VRMLTexturePtr texture
Definition: VRML.h:302
Definition: VRML.h:62
VRML Proto definition.
Definition: VRML.h:794
SFBool endCap
Definition: VRML.h:626
Definition: VRML.h:727
SFBool enabled
Definition: VRML.h:538
MFVec3s point
Definition: VRML.h:508
SFTime(double time)
Definition: VRML.h:30
SFFloat speed
Definition: VRML.h:172
Definition: VRML.h:86
VRMLTextureCoordinatePtr texCoord
Definition: VRML.h:481