Main Page | Class Hierarchy | Compound List | File List | Compound Members

layerdata.h

00001 /**************************************************************************\
00002  *
00003  *  This source file is part of DIME.
00004  *  Copyright (C) 1998-2001 by Systems In Motion.  All rights reserved.
00005  *
00006  *  This library is free software; you can redistribute it and/or modify it
00007  *  under the terms of the GNU General Public License, version 2, as
00008  *  published by the Free Software Foundation.
00009  *
00010  *  This library is distributed in the hope that it will be useful, but
00011  *  WITHOUT ANY WARRANTY; without even the implied warranty of
00012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  *  General Public License (the accompanying file named COPYING) for more
00014  *  details.
00015  *
00016  **************************************************************************
00017  *
00018  *  If you need DIME for a non-GPL project, contact Systems In Motion
00019  *  to acquire a Professional Edition License:
00020  *
00021  *  Systems In Motion                                   http://www.sim.no/
00022  *  Prof. Brochs gate 6                                       sales@sim.no
00023  *  N-7030 Trondheim                                   Voice: +47 22114160
00024  *  NORWAY                                               Fax: +47 22207097
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 DIME_DLL_API 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                 const bool only2d);
00061 
00062 //private:
00063 public: // 20011001 thammer - please don't kill me for this ;-)
00064 
00065   friend class dime2So;
00066   friend class dime2Profit;
00067 
00068   bool fillmode;
00069   int colidx;
00070   dimeBSPTree facebsp;
00071   dimeArray <int> faceindices;
00072   dimeBSPTree linebsp;
00073   dimeArray <int> lineindices;
00074   dimeArray <dimeVec3f> points;
00075 };
00076 
00077 #endif // _DXF2VRML_LAYERDATA_H_

Copyright © 1998-1999, Systems In Motion <sales@sim.no>. All rights reserved.
System documentation was generated using doxygen.