CMS 3D CMS Logo

IgSoRotSolid.h

Go to the documentation of this file.
00001 #ifndef IG_OPEN_INVENTOR_IG_SO_ROT_SOLID_H
00002 # define IG_OPEN_INVENTOR_IG_SO_ROT_SOLID_H
00003 
00004 //<<<<<< INCLUDES                                                       >>>>>>
00005 
00006 # include "Iguana/Inventor/interface/IgSoShapeKit.h"
00007 # include <Inventor/fields/SoSFFloat.h>
00008 # include <Inventor/fields/SoSFInt32.h>
00009 # include <Inventor/fields/SoSFBool.h>
00010 # include <Inventor/fields/SoMFVec2f.h>
00011 # include <vector>
00012 # ifdef WIN32
00013 #  include <SoWinLeaveScope.h>
00014 # endif
00015 
00016 //<<<<<< PUBLIC DEFINES                                                 >>>>>>
00017 //<<<<<< PUBLIC CONSTANTS                                               >>>>>>
00018 //<<<<<< PUBLIC TYPES                                                   >>>>>>
00019 //<<<<<< PUBLIC VARIABLES                                               >>>>>>
00020 //<<<<<< PUBLIC FUNCTIONS                                               >>>>>>
00021 //<<<<<< CLASS DECLARATIONS                                             >>>>>>
00022 
00033 class IG_OPEN_INVENTOR_API IgSoRotSolid : public IgSoShapeKit
00034 {
00035     SO_KIT_HEADER (IgSoRotSolid);
00036     SO_KIT_CATALOG_ENTRY_HEADER (hints);
00037     SO_KIT_CATALOG_ENTRY_HEADER (faces);
00038     SO_KIT_CATALOG_ENTRY_HEADER (lines);
00039 
00040 public:
00041     IgSoRotSolid (void);
00042     static void initClass (void);
00043 
00044     SoSFFloat   phiStart;               //< Start angle for the rotation.
00045     SoSFFloat   phiDelta;               //< Angle of rotation.
00046     SoSFInt32   divisions;              //< Number of sides in phiDelta.
00047     SoMFVec2f   polygon;                //< Points defining the rotational polygon.   
00048     SoSFBool    smooth;    
00049     SoSFBool    showLines;    
00050 
00051     
00052     void        makePgon (const std::vector<float> &zvals, 
00053                           const std::vector<float> &rmin, 
00054                           const std::vector<float> &rmax,
00055                           float phiStart = 0, 
00056                           float phiDelta = 2*M_PI,
00057                           int divisions = 5);
00058 
00059     void        makePcon (const std::vector<float> &zvals, 
00060                           const std::vector<float> &rmin, 
00061                           const std::vector<float> &rmax,
00062                           float phiStart = 0, 
00063                           float phiDelta = 2*M_PI,
00064                           int divisions = -1);
00065 
00066     void        makeCons (float rmin1, 
00067                           float rmax1,
00068                           float rmin2, 
00069                           float rmax2,
00070                           float dz,
00071                           float phiStart = 0, 
00072                           float phiDelta = 2*M_PI,
00073                           int divisions = -1);
00074 
00075     void        makeTubs (float rmin, 
00076                           float rmax,
00077                           float dz,
00078                           float phiStart = 0, 
00079                           float phiDelta = 2*M_PI,
00080                           int divisions = -1);
00081 
00082 protected:
00083     virtual void refresh (void);
00084 private:
00085     void cleanParts (void);    
00086 };
00087 
00088 //<<<<<< INLINE PUBLIC FUNCTIONS                                        >>>>>>
00089 //<<<<<< INLINE MEMBER FUNCTIONS                                        >>>>>>
00090 
00091 # ifdef WIN32
00092 #  include <SoWinEnterScope.h>
00093 # endif
00094 #endif // IG_OPEN_INVENTOR_IG_SO_ROT_SOLID_H

Generated on Tue Jun 9 17:38:43 2009 for CMSSW by  doxygen 1.5.4