00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _CIvfSolidLine_h_
00026 #define _CIvfSolidLine_h_
00027
00028 #include <ivf/IvfExtrusion.h>
00029 #include <ivf/IvfNode.h>
00030
00031 IvfSmartPointer(CIvfSolidLine);
00032
00033 #define IVF_LINE_SIMPLE 0
00034 #define IVF_LINE_SOLID 1
00035
00036 #define IVF_REFRESH_ALL 0
00037 #define IVF_REFRESH_NODES 1
00038 #define IVF_REFRESH_SECTION 2
00039
00048 class IVF_API CIvfSolidLine : public CIvfExtrusion {
00049 public:
00051 CIvfSolidLine ();
00052
00054 virtual ~CIvfSolidLine ();
00055
00056 IvfClassInfo("CIvfSolidLine",CIvfExtrusion);
00057
00065 virtual void refresh();
00066
00074 void setSides(long n);
00075
00077 void setRadius(double radius);
00078
00087 void setNodes(CIvfNode* n1, CIvfNode* n2);
00088
00094 CIvfNode* getNode(int idx);
00095
00103 void setRefresh(int mode);
00104
00105 double getRadius();
00106 double getLength();
00107 protected:
00108 virtual void initExtrusion();
00109 virtual void onSetNodes(CIvfNode* n1, CIvfNode* n2);
00110 private:
00111 void initNodes();
00112 void initSection();
00113 double m_radius;
00114 long m_nSides;
00115 double m_offsets[2];
00116 CIvfNodePtr m_node2;
00117 CIvfNodePtr m_node1;
00118 int m_refreshMode;
00119 public:
00120 void setOffsets(double offset1, double offset2);
00121 };
00122 #endif