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 _CIvfGleLine_h_
00026 #define _CIvfGleLine_h_
00027
00028 #include <ivfmath/IvfVec3d.h>
00029
00030 #include <ivf/IvfShape.h>
00031
00032 #include <ivfgle/IvfGlePolyCone.h>
00033 #include <ivfgle/IvfGlePolyCylinder.h>
00034 #include <ivfgle/IvfGleTwistExtrusion.h>
00035 #include <ivfgle/IvfGleExtrusion.h>
00036
00037 IvfSmartPointer(CIvfGleLine);
00038
00039 class IVFGLE_API CIvfGleLine: public CIvfShape {
00040 public:
00041 enum TLineRepresentation {
00042 LR_EXTRUSION,
00043 LR_POLY_CYLINDER,
00044 LR_POLY_CONE,
00045 LR_WIRE
00046 };
00047 private:
00048 CIvfVec3d m_startPoint;
00049 CIvfVec3d m_endPoint;
00050 TLineRepresentation m_lineRep;
00051 void updateLine();
00052 public:
00053 CIvfGleLine();
00054 virtual ~CIvfGleLine();
00055
00056 void setLineRepresentation(TLineRepresentation lineRep);
00057 void setStartPoint(double x, double y, double z);
00058 void setEndPoint(double x, double y, double z);
00059 void setSections(int sections);
00060
00061 IvfClassInfo("CIvfGleLine", CIvfShape);
00062 };
00063
00064 #endif