CMS 3D CMS Logo

IgSoSlicerEngine.cc

Go to the documentation of this file.
00001 //<<<<<< INCLUDES                                                       >>>>>>
00002 
00003 #include "Iguana/Inventor/interface/IgSoSlicerEngine.h"
00004 
00005 //<<<<<< PRIVATE DEFINES                                                >>>>>>
00006 //<<<<<< PRIVATE CONSTANTS                                              >>>>>>
00007 //<<<<<< PRIVATE TYPES                                                  >>>>>>
00008 //<<<<<< PRIVATE VARIABLE DEFINITIONS                                   >>>>>>
00009 //<<<<<< PUBLIC VARIABLE DEFINITIONS                                    >>>>>>
00010 //<<<<<< CLASS STRUCTURE INITIALIZATION                                 >>>>>>
00011 
00012 SO_ENGINE_SOURCE (IgSoSlicerEngine);
00013 
00014 //<<<<<< PRIVATE FUNCTION DEFINITIONS                                   >>>>>>
00015 //<<<<<< PUBLIC FUNCTION DEFINITIONS                                    >>>>>>
00016 //<<<<<< MEMBER FUNCTION DEFINITIONS                                    >>>>>>
00017 
00018 void
00019 IgSoSlicerEngine::initClass (void)
00020 {
00021     SO_ENGINE_INIT_CLASS (IgSoSlicerEngine, SoEngine, "Engine");
00022 }
00023 
00024 IgSoSlicerEngine::IgSoSlicerEngine (void)
00025 {
00026     SO_ENGINE_CONSTRUCTOR (IgSoSlicerEngine);
00027     SO_ENGINE_ADD_INPUT (thickness, (.5));
00028     SO_ENGINE_ADD_INPUT (plane, (SbPlane (SbVec3f (0, 0, -1), 0)));
00029     SO_ENGINE_ADD_OUTPUT (frontPlane, SoSFPlane);
00030     SO_ENGINE_ADD_OUTPUT (backPlane, SoSFPlane);
00031 }
00032 
00033 IgSoSlicerEngine::~IgSoSlicerEngine (void)
00034 {}
00035 
00036 void
00037 IgSoSlicerEngine::evaluate (void)
00038 {
00039     SbPlane     p (plane.getValue ());
00040     SbVec3f     n (p.getNormal ());
00041     float       d1 = p.getDistanceFromOrigin ();
00042     float       d2 = thickness.getValue ()/2.0f;
00043 
00044     SO_ENGINE_OUTPUT (frontPlane, SoSFPlane, 
00045                       setValue (SbPlane (n, d1 - d2)));
00046     SO_ENGINE_OUTPUT (backPlane, SoSFPlane, 
00047                       setValue (SbPlane (n * -1, -d1 - d2)));
00048 }

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