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 #ifndef _DXF2VRML_LAYERDATA_H_
00029 #define _DXF2VRML_LAYERDATA_H_
00030
00031 #include <dime/util/Linear.h>
00032 #include <dime/util/Array.h>
00033 #include <dime/util/BSPTree.h>
00034 #include <stdio.h>
00035
00036 class dxfLayerData {
00037 public:
00038 dxfLayerData(const int colidx);
00039 ~dxfLayerData();
00040
00041 void setFillmode(const bool fillmode);
00042
00043 void addLine(const dimeVec3f &v0, const dimeVec3f &v1,
00044 const dimeMatrix * const matrix = NULL);
00045
00046 void addPoint(const dimeVec3f &v,
00047 const dimeMatrix * const matrix = NULL);
00048
00049 void addTriangle(const dimeVec3f &v0,
00050 const dimeVec3f &v1,
00051 const dimeVec3f &v2,
00052 const dimeMatrix * const matrix = NULL);
00053 void addQuad(const dimeVec3f &v0,
00054 const dimeVec3f &v1,
00055 const dimeVec3f &v2,
00056 const dimeVec3f &v3,
00057 const dimeMatrix * const matrix = NULL);
00058
00059 void writeWrl(FILE *fp, int indent, const bool vrml1);
00060
00061
00062 public:
00063
00064 friend class dime2So;
00065 friend class dime2Profit;
00066
00067 bool fillmode;
00068 int colidx;
00069 dimeBSPTree facebsp;
00070 dimeArray <int> faceindices;
00071 dimeBSPTree linebsp;
00072 dimeArray <int> lineindices;
00073 dimeArray <dimeVec3f> points;
00074 };
00075
00076 #endif // _DXF2VRML_LAYERDATA_H_