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
00026
00027
00028
00029
00030 #ifndef DIME_LINE_H
00031 #define DIME_LINE_H
00032
00033 #include <dime/Basic.h>
00034 #include <dime/entities/ExtrusionEntity.h>
00035 #include <dime/util/Linear.h>
00036
00037 class DIME_DLL_API dimeLine : public dimeExtrusionEntity
00038 {
00039 public:
00040 dimeLine();
00041
00042 const dimeVec3f &getCoords(const int idx) const;
00043 void setCoords(const int idx, const dimeVec3f &v);
00044
00045 virtual dimeEntity *copy(dimeModel * const model) const;
00046 virtual bool getRecord(const int groupcode,
00047 dimeParam ¶m,
00048 const int index = 0) const;
00049 virtual const char *getEntityName() const;
00050 virtual void print() const;
00051 virtual bool write(dimeOutput * const out);
00052 virtual int typeId() const;
00053 virtual int countRecords() const;
00054
00055 virtual GeometryType extractGeometry(dimeArray <dimeVec3f> &verts,
00056 dimeArray <int> &indices,
00057 dimeVec3f &extrusionDir,
00058 dxfdouble &thickness);
00059
00060 protected:
00061 virtual bool handleRecord(const int groupcode,
00062 const dimeParam ¶m,
00063 dimeMemHandler * const memhandler);
00064
00065 private:
00066 dimeVec3f coords[2];
00067
00068 };
00069
00070 inline const dimeVec3f &
00071 dimeLine::getCoords(const int idx) const
00072 {
00073 assert(idx ==0 || idx == 1);
00074 return this->coords[idx];
00075 }
00076
00077 inline void
00078 dimeLine::setCoords(const int idx, const dimeVec3f &v)
00079 {
00080 assert(idx ==0 || idx == 1);
00081 this->coords[idx] = v;
00082 }
00083
00084 #endif // ! DIME_LINE_H
00085