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 _CIvfExtrArrow_h_
00026 #define _CIvfExtrArrow_h_
00027
00028 #include <ivf/IvfShape.h>
00029
00030 IvfSmartPointer(CIvfExtrArrow);
00031
00039 class IVF_API CIvfExtrArrow : public CIvfShape {
00040 private:
00041 void initExtrusion();
00042 int arrowType;
00043 double m_extraHead;
00044 double m_headRadius;
00045 double m_head;
00046 double m_length;
00047 double m_tailRadius;
00048 double m_coords[6][3];
00049 double m_radius[6];
00050 double m_direction[3];
00051 double m_position[3];
00052 double m_offset;
00053 public:
00054 void setDirection(CIvfVec3d& vec);
00056 CIvfExtrArrow();
00057
00059 virtual ~CIvfExtrArrow();
00060
00061 IvfClassInfo("CIvfExtrArrow",CIvfShape);
00062
00064 void setRadius(double head, double tail);
00065
00067 void getRadius(double &head, double &tail);
00068
00070 void setSize(double length, double head);
00071
00073 void getSize(double &length, double &head);
00074
00076 void setDirection(double ex, double ey, double ez);
00077
00079 void getDirection(double &ex, double &ey, double &ez);
00080
00088 void setOffset(double offset);
00089
00091 double getOffset();
00092
00098 void updateBoundingSphere();
00099
00100 protected:
00101 virtual void createGeometry();
00102 };
00103
00104 #endif