Home Hierarchy Members Alphabetical Related Pages

traverser.h

Go to the documentation of this file.
00001 #ifndef XDKWRL_TRAVERSER_H
00002 #define XDKWRL_TRAVERSER_H
00003 
00004 #include <xdkwrl/tools/transformator.h>
00005 
00006 namespace wrl
00007 {
00008   class Node;
00009   
00010   class Anchor;
00011   class Appearance;
00012   class AudioClip;
00013   class Background;
00014   class Billboard;
00015   class Box;
00016   class Collision;
00017   class Color;
00018   class ColorInterpolator;
00019   class Cone;
00020   class Contour2D;
00021   class Coordinate;
00022   class CoordinateDeformer;
00023   class CoordinateInterpolator;
00024   class Cylinder;
00025   class CylinderSensor;
00026   class DirectionalLight;
00027   class ElevationGrid;
00028   class Extrusion;
00029   class Fog;
00030   class FontStyle;
00031   class GeoCoordinate;
00032   class GeoElevationGrid;
00033   class GeoLOD;
00034   class GeoLocation;
00035   class GeoMetadata;
00036   class GeoOrigin;
00037   class GeoPositionInterpolator;
00038   class GeoTouchSensor;
00039   class GeoViewpoint;
00040   class Group;
00041   class ImageTexture;
00042   class IndexedFaceSet;
00043   class IndexedLineSet;
00044   class Inline;
00045   class InlineLoadControl;
00046   class LOD;
00047   class Material;
00048   class MovieTexture;
00049   class NavigationInfo;
00050   class Normal;
00051   class NormalInterpolator;
00052   class NurbsCurve;
00053   class NurbsCurve2D;
00054   class NurbsGroup;
00055   class NurbsPositionInterpolator;
00056   class NurbsSurface;
00057   class NurbsTextureSurface;
00058   class OrientationInterpolator;
00059   class PixelTexture;
00060   class PlaneSensor;
00061   class PointLight;
00062   class PointSet;
00063   class Polyline2D;
00064   class PositionInterpolator;
00065   class ProximitySensor;
00066   class ScalarInterpolator;
00067   class Shape;
00068   class Sound;
00069   class Sphere;
00070   class SphereSensor;
00071   class SpotLight;
00072   class Switch;
00073   class Text;
00074   class TextureCoordinate;
00075   class TextureTransform;
00076   class TimeSensor;
00077   class TouchSensor;
00078   class Transform;
00079   class TrimmedSurface;
00080   class Viewpoint;
00081   class VisibilitySensor;
00082   class WorldInfo;  
00083   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00084   // Interface of Traverser
00085   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00086   class Traverser
00087   {
00088   public:
00089     void operator()(wrl::Node* node);
00090     virtual ~Traverser() {}
00091   protected:
00092     virtual void treat(Anchor*);
00093     virtual void treat(Appearance*);
00094     virtual void treat(AudioClip*);
00095     virtual void treat(Background*);
00096     virtual void treat(Billboard*);
00097     virtual void treat(Box*);
00098     virtual void treat(Collision*);
00099     virtual void treat(Color*);
00100     virtual void treat(ColorInterpolator*);
00101     virtual void treat(Cone*);
00102     virtual void treat(Contour2D*);
00103     virtual void treat(Coordinate*);
00104     virtual void treat(CoordinateDeformer*);
00105     virtual void treat(CoordinateInterpolator*);
00106     virtual void treat(Cylinder*);
00107     virtual void treat(CylinderSensor*);
00108     virtual void treat(DirectionalLight*);
00109     virtual void treat(ElevationGrid*);
00110     virtual void treat(Extrusion*);
00111     virtual void treat(Fog*);
00112     virtual void treat(FontStyle*);
00113     virtual void treat(GeoCoordinate*);
00114     virtual void treat(GeoElevationGrid*);
00115     virtual void treat(GeoLOD*);
00116     virtual void treat(GeoLocation*);
00117     virtual void treat(GeoMetadata*);
00118     virtual void treat(GeoOrigin*);
00119     virtual void treat(GeoPositionInterpolator*);
00120     virtual void treat(GeoTouchSensor*);
00121     virtual void treat(GeoViewpoint*);
00122     virtual void treat(Group*);
00123     virtual void treat(ImageTexture*);
00124     virtual void treat(IndexedFaceSet*);
00125     virtual void treat(IndexedLineSet*);
00126     virtual void treat(Inline*);
00127     virtual void treat(InlineLoadControl*);
00128     virtual void treat(LOD*);
00129     virtual void treat(Material*);
00130     virtual void treat(MovieTexture*);
00131     virtual void treat(NavigationInfo*);
00132     virtual void treat(Normal*);
00133     virtual void treat(NormalInterpolator*);
00134     virtual void treat(NurbsCurve*);
00135     virtual void treat(NurbsCurve2D*);
00136     virtual void treat(NurbsGroup*);
00137     virtual void treat(NurbsPositionInterpolator*);
00138     virtual void treat(NurbsSurface*);
00139     virtual void treat(NurbsTextureSurface*);
00140     virtual void treat(OrientationInterpolator*);
00141     virtual void treat(PixelTexture*);
00142     virtual void treat(PlaneSensor*);
00143     virtual void treat(PointLight*);
00144     virtual void treat(PointSet*);
00145     virtual void treat(Polyline2D*);
00146     virtual void treat(PositionInterpolator*);
00147     virtual void treat(ProximitySensor*);
00148     virtual void treat(ScalarInterpolator*);
00149     virtual void treat(Shape*);
00150     virtual void treat(Sound*);
00151     virtual void treat(Sphere*);
00152     virtual void treat(SphereSensor*);
00153     virtual void treat(SpotLight*);
00154     virtual void treat(Switch*);
00155     virtual void treat(Text*);
00156     virtual void treat(TextureCoordinate*);
00157     virtual void treat(TextureTransform*);
00158     virtual void treat(TimeSensor*);
00159     virtual void treat(TouchSensor*);
00160     virtual void treat(Transform*);
00161     virtual void treat(TrimmedSurface*);
00162     virtual void treat(Viewpoint*);
00163     virtual void treat(VisibilitySensor*);
00164     virtual void treat(WorldInfo*);
00165   protected:
00166     inline const TransformatorHierarchy& transformHierarchy() const;
00167     inline TransformatorHierarchy& transformHierarchy();
00168   private:
00169     TransformatorHierarchy transformHierarchy_;    
00170   };
00171   //************************************************************
00172   // Implementation of TransformatorHierarchy
00173   //************************************************************
00174   inline const TransformatorHierarchy&
00175   Traverser::transformHierarchy() const
00176   {
00177     return transformHierarchy_;
00178   }    
00179   inline TransformatorHierarchy&
00180   Traverser::transformHierarchy()
00181   {
00182     return transformHierarchy_;
00183   }
00184 }
00185 
00186 #endif // XDKWRL_TRAVERSER_H
00187 
00188 // Local variables section.
00189 // This is only used by emacs!
00190 // Local Variables:
00191 // ff-search-directories: ("." "../../../src/xdkwrl/tools/")
00192 // End:

Generated on 24 Feb 2005 with doxygen version 1.3.9.1. Valid HTML 4.0! Valid CSS!