IvfNode.h

00001 //
00002 // Copyright 1999-2006 by Structural Mechanics, Lund University.
00003 //
00004 // This library is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU Library General Public
00006 // License as published by the Free Software Foundation; either
00007 // version 2 of the License, or (at your option) any later version.
00008 //
00009 // This library is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // Library General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU Library General Public
00015 // License along with this library; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00017 // USA.
00018 //
00019 // Please report all bugs and problems to "ivf@byggmek.lth.se".
00020 //
00021 //
00022 // Written by Jonas Lindemann
00023 //
00024 
00025 #ifndef _CIvfNode_h_
00026 #define _CIvfNode_h_
00027 
00028 #include <ivf/IvfShape.h>
00029 #include <ivf/IvfSphere.h>
00030 #include <ivf/IvfCube.h>
00031 
00032 IvfSmartPointer(CIvfNode);
00033 
00042 class IVF_API CIvfNode : public CIvfShape {
00043 public:
00044         enum TNodeType {
00045                 NT_SPHERE,
00046                 NT_CUBE,
00047                 NT_INVISIBLE
00048         };
00049 public:
00051         CIvfNode ();
00052 
00054         virtual ~CIvfNode ();
00055 
00056         IvfClassInfo("CIvfNode",CIvfBase);
00057         
00065         void setSize(double size);
00066 
00068         double getSize();
00069 
00076         void setType(TNodeType nodeType);
00077 
00079         TNodeType getNodeType();
00080 
00082         virtual void updateBoundingSphere();
00083 private:
00084         double m_nodeSize;
00085         CIvfSelectionBoxPtr m_selectionBox;
00086         TNodeType m_nodeType;
00087         CIvfShapePtr m_nodeShape;
00088         CIvfCubePtr m_cubeShape;
00089         CIvfSpherePtr m_sphereShape;
00090 protected:
00091         virtual void createSelect();
00092         virtual void createGeometry();
00093 };
00094 #endif

Generated on Fri Sep 1 15:36:45 2006 for Interactive Visualisation Framework - Ivf++ by  doxygen 1.4.6-NO