TerraLib 4.1
E:/Projetos_Primeiro_Semestre_2012/TerraView/terralib/src/dxflib/dl_entities.h
Go to the documentation of this file.
00001 /****************************************************************************
00002 ** $Id: dl_entities.h 8171 2009-12-11 12:31:36Z fredbed $
00003 **
00004 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
00005 **
00006 ** This file is part of the dxflib project.
00007 **
00008 ** This file may be distributed and/or modified under the terms of the
00009 ** GNU General Public License version 2 as published by the Free Software
00010 ** Foundation and appearing in the file LICENSE.GPL included in the
00011 ** packaging of this file.
00012 **
00013 ** Licensees holding valid dxflib Professional Edition licenses may use 
00014 ** this file in accordance with the dxflib Commercial License
00015 ** Agreement provided with the Software.
00016 **
00017 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00018 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00019 **
00020 ** See http://www.ribbonsoft.com for further details.
00021 **
00022 ** Contact info@ribbonsoft.com if any conditions of this licensing are
00023 ** not clear to you.
00024 **
00025 **********************************************************************/
00026 
00027 #ifndef DL_ENTITIES_H
00028 #define DL_ENTITIES_H
00029 
00030 
00031 #include <string>
00032 using std::string;
00033 
00039 struct DL_LayerData {
00044     DL_LayerData(const string& lName,
00045                  int lFlags) {
00046         name = lName;
00047         flags = lFlags;
00048     }
00049 
00051     string name;
00053     int flags;
00054 };
00055 
00056 
00057 
00063 struct DL_BlockData {
00068     DL_BlockData(const string& bName,
00069                  int bFlags,
00070                  double bbpx, double bbpy, double bbpz) {
00071         name = bName;
00072         flags = bFlags;
00073         bpx = bbpx;
00074         bpy = bbpy;
00075         bpz = bbpz;
00076     }
00077 
00079     string name;
00081     int flags;
00083     double bpx;
00085     double bpy;
00087     double bpz;
00088 };
00089 
00090 
00091 
00097 struct DL_LineTypeData {
00102     DL_LineTypeData(const string& lName,
00103                     int lFlags) {
00104         name = lName;
00105         flags = lFlags;
00106     }
00107 
00109     string name;
00111     int flags;
00112 };
00113 
00114 
00115 
00121 struct DL_PointData {
00126     DL_PointData(double px=0.0, double py=0.0, double pz=0.0) {
00127         x = px;
00128         y = py;
00129         z = pz;
00130     }
00131 
00133     double x;
00135     double y;
00137     double z;
00138 };
00139 
00140 
00141 
00147 struct DL_LineData {
00152     DL_LineData(double lx1, double ly1, double lz1,
00153                 double lx2, double ly2, double lz2) {
00154         x1 = lx1;
00155         y1 = ly1;
00156         z1 = lz1;
00157 
00158         x2 = lx2;
00159         y2 = ly2;
00160         z2 = lz2;
00161     }
00162 
00164     double x1;
00166     double y1;
00168     double z1;
00169 
00171     double x2;
00173     double y2;
00175     double z2;
00176 };
00177 
00178 
00179 
00185 struct DL_ArcData {
00190     DL_ArcData(double acx, double acy, double acz,
00191                double aRadius,
00192                double aAngle1, double aAngle2) {
00193 
00194         cx = acx;
00195         cy = acy;
00196         cz = acz;
00197         radius = aRadius;
00198         angle1 = aAngle1;
00199         angle2 = aAngle2;
00200     }
00201 
00203     double cx;
00205     double cy;
00207     double cz;
00208 
00210     double radius;
00212     double angle1;
00214     double angle2;
00215 };
00216 
00217 
00218 
00224 struct DL_CircleData {
00229     DL_CircleData(double acx, double acy, double acz,
00230                   double aRadius) {
00231 
00232         cx = acx;
00233         cy = acy;
00234         cz = acz;
00235         radius = aRadius;
00236     }
00237 
00239     double cx;
00241     double cy;
00243     double cz;
00244 
00246     double radius;
00247 };
00248 
00249 
00250 
00256 struct DL_PolylineData {
00261     DL_PolylineData(int pNumber, int pMVerteces, int pNVerteces, int pFlags) {
00262         number = pNumber;
00263         m = pMVerteces;
00264         n = pNVerteces;
00265         flags = pFlags;
00266     }
00267 
00269     unsigned int number;
00270 
00272     unsigned int m;
00273 
00275     unsigned int n;
00276 
00278     int flags;
00279 };
00280 
00281 
00282 
00288 struct DL_VertexData {
00293     DL_VertexData(double px=0.0, double py=0.0, double pz=0.0,
00294                   double pBulge=0.0) {
00295         x = px;
00296         y = py;
00297         z = pz;
00298         bulge = pBulge;
00299     }
00300 
00302     double x;
00304     double y;
00306     double z;
00309     double bulge;
00310 };
00311 
00312 
00318 struct DL_TraceData {
00319     DL_TraceData() {
00320         thickness = 0.0;
00321         for (int i=0; i<4; i++) {
00322             x[i] = 0.0;
00323             y[i] = 0.0;
00324             z[i] = 0.0;
00325         }
00326     }
00327     
00332     DL_TraceData(double sx1, double sy1, double sz1,
00333                 double sx2, double sy2, double sz2,
00334                 double sx3, double sy3, double sz3,
00335                 double sx4, double sy4, double sz4,
00336                 double sthickness=0.0) {
00337 
00338         thickness = sthickness;
00339 
00340         x[0] = sx1;
00341         y[0] = sy1;
00342         z[0] = sz1;
00343 
00344         x[1] = sx2;
00345         y[1] = sy2;
00346         z[1] = sz2;
00347         
00348         x[2] = sx3;
00349         y[2] = sy3;
00350         z[2] = sz3;
00351         
00352         x[3] = sx4;
00353         y[3] = sy4;
00354         z[3] = sz4;
00355     }
00356 
00358     double thickness;
00359     
00361     double x[4];
00362     double y[4];
00363     double z[4];
00364 };
00365 
00366 
00367 
00368 
00369 
00375 typedef DL_TraceData DL_SolidData;
00376 
00377 
00381 typedef DL_TraceData DL_3dFaceData;
00382 
00383 
00389 struct DL_SplineData {
00394     DL_SplineData(int pDegree, int pNKnots, int pNControl, int pFlags) {
00395                       degree = pDegree;
00396                       nKnots = pNKnots;
00397                       nControl = pNControl;
00398         flags = pFlags;
00399     }
00400 
00402     unsigned int degree;
00403 
00405     unsigned int nKnots;
00406 
00408     unsigned int nControl;
00409 
00411     int flags;
00412 };
00413 
00414 
00415 
00421 struct DL_KnotData {
00422     DL_KnotData() {}
00427     DL_KnotData(double pk) {
00428         k = pk;
00429     }
00430 
00432     double k;
00433 };
00434 
00435 
00436 
00442 struct DL_ControlPointData {
00447     DL_ControlPointData(double px, double py, double pz) {
00448         x = px;
00449         y = py;
00450         z = pz;
00451     }
00452 
00454     double x;
00456     double y;
00458     double z;
00459 };
00460 
00461 
00467 struct DL_EllipseData {
00472     DL_EllipseData(double ecx, double ecy, double ecz,
00473                    double emx, double emy, double emz,
00474                    double eRatio,
00475                    double eAngle1, double eAngle2) {
00476 
00477         cx = ecx;
00478         cy = ecy;
00479         cz = ecz;
00480         mx = emx;
00481         my = emy;
00482         mz = emz;
00483         ratio = eRatio;
00484         angle1 = eAngle1;
00485         angle2 = eAngle2;
00486     }
00487 
00489     double cx;
00491     double cy;
00493     double cz;
00494 
00496     double mx;
00498     double my;
00500     double mz;
00501 
00503     double ratio;
00505     double angle1;
00507     double angle2;
00508 };
00509 
00510 
00511 
00517 struct DL_InsertData {
00522     DL_InsertData(const string& iName,
00523                   double iipx, double iipy, double iipz,
00524                   double isx, double isy, double isz,
00525                   double iAngle,
00526                   int iCols, int iRows,
00527                   double iColSp, double iRowSp) {
00528         name = iName;
00529         ipx = iipx;
00530         ipy = iipy;
00531         ipz = iipz;
00532         sx = isx;
00533         sy = isy;
00534         sz = isz;
00535         angle = iAngle;
00536         cols = iCols;
00537         rows = iRows;
00538         colSp = iColSp;
00539         rowSp = iRowSp;
00540     }
00541 
00543     string name;
00545     double ipx;
00547     double ipy;
00549     double ipz;
00551     double sx;
00553     double sy;
00555     double sz;
00557     double angle;
00559     int cols;
00561     int rows;
00563     double colSp;
00565     double rowSp;
00566 };
00567 
00568 
00569 
00575 struct DL_MTextData {
00580     DL_MTextData(double tipx, double tipy, double tipz,
00581                  double tHeight, double tWidth,
00582                  int tAttachmentPoint,
00583                  int tDrawingDirection,
00584                  int tLineSpacingStyle,
00585                  double tLineSpacingFactor,
00586                  const string& tText,
00587                  const string& tStyle,
00588                  double tAngle) {
00589         ipx = tipx;
00590         ipy = tipy;
00591         ipz = tipz;
00592 
00593         height = tHeight;
00594         width = tWidth;
00595         attachmentPoint = tAttachmentPoint;
00596         drawingDirection = tDrawingDirection;
00597         lineSpacingStyle = tLineSpacingStyle;
00598         lineSpacingFactor = tLineSpacingFactor;
00599         text = tText;
00600         style = tStyle;
00601         angle = tAngle;
00602     }
00603 
00605     double ipx;
00607     double ipy;
00609     double ipz;
00611     double height;
00613     double width;
00621     int attachmentPoint;
00627     int drawingDirection;
00633     int lineSpacingStyle;
00637     double lineSpacingFactor;
00639     string text;
00641     string style;
00643     double angle;
00644 };
00645 
00646 
00647 
00653 struct DL_TextData {
00658     DL_TextData(double tipx, double tipy, double tipz,
00659                 double tapx, double tapy, double tapz,
00660                 double tHeight, double tXScaleFactor,
00661                 int tTextGenerationFlags,
00662                 int tHJustification,
00663                 int tVJustification,
00664                 const string& tText,
00665                 const string& tStyle,
00666                 double tAngle) {
00667         ipx = tipx;
00668         ipy = tipy;
00669         ipz = tipz;
00670 
00671         apx = tapx;
00672         apy = tapy;
00673         apz = tapz;
00674 
00675         height = tHeight;
00676         xScaleFactor = tXScaleFactor;
00677         textGenerationFlags = tTextGenerationFlags;
00678         hJustification = tHJustification;
00679         vJustification = tVJustification;
00680         text = tText;
00681         style = tStyle;
00682         angle = tAngle;
00683     }
00684 
00686     double ipx;
00688     double ipy;
00690     double ipz;
00691 
00693     double apx;
00695     double apy;
00697     double apz;
00698 
00700     double height;
00702     double xScaleFactor;
00704     int textGenerationFlags;
00712     int hJustification;
00718     int vJustification;
00720     string text;
00722     string style;
00724     double angle;
00725 };
00726 
00727 
00728 
00734 struct DL_DimensionData {
00739     DL_DimensionData(double ddpx, double ddpy, double ddpz,
00740                      double dmpx, double dmpy, double dmpz,
00741                      int dType,
00742                      int dAttachmentPoint,
00743                      int dLineSpacingStyle,
00744                      double dLineSpacingFactor,
00745                      const string& dText,
00746                      const string& dStyle,
00747                      double dAngle) {
00748 
00749         dpx = ddpx;
00750         dpy = ddpy;
00751         dpz = ddpz;
00752 
00753         mpx = dmpx;
00754         mpy = dmpy;
00755         mpz = dmpz;
00756 
00757         type = dType;
00758 
00759         attachmentPoint = dAttachmentPoint;
00760         lineSpacingStyle = dLineSpacingStyle;
00761         lineSpacingFactor = dLineSpacingFactor;
00762         text = dText;
00763         style = dStyle;
00764         angle = dAngle;
00765     }
00766 
00768     double dpx;
00770     double dpy;
00772     double dpz;
00774     double mpx;
00776     double mpy;
00778     double mpz;
00798     int type;
00806     int attachmentPoint;
00812     int lineSpacingStyle;
00816     double lineSpacingFactor;
00824     string text;
00826     string style;
00831     double angle;
00832 };
00833 
00834 
00835 
00841 struct DL_DimAlignedData {
00846     DL_DimAlignedData(double depx1, double depy1, double depz1,
00847                       double depx2, double depy2, double depz2) {
00848 
00849         epx1 = depx1;
00850         epy1 = depy1;
00851         epz1 = depz1;
00852 
00853         epx2 = depx2;
00854         epy2 = depy2;
00855         epz2 = depz2;
00856     }
00857 
00859     double epx1;
00861     double epy1;
00863     double epz1;
00864 
00866     double epx2;
00868     double epy2;
00870     double epz2;
00871 };
00872 
00873 
00874 
00880 struct DL_DimLinearData {
00885     DL_DimLinearData(double ddpx1, double ddpy1, double ddpz1,
00886                      double ddpx2, double ddpy2, double ddpz2,
00887                      double dAngle, double dOblique) {
00888 
00889         dpx1 = ddpx1;
00890         dpy1 = ddpy1;
00891         dpz1 = ddpz1;
00892 
00893         dpx2 = ddpx2;
00894         dpy2 = ddpy2;
00895         dpz2 = ddpz2;
00896 
00897         angle = dAngle;
00898         oblique = dOblique;
00899     }
00900 
00902     double dpx1;
00904     double dpy1;
00906     double dpz1;
00907 
00909     double dpx2;
00911     double dpy2;
00913     double dpz2;
00914 
00916     double angle;
00918     double oblique;
00919 };
00920 
00921 
00922 
00928 struct DL_DimRadialData {
00933     DL_DimRadialData(double ddpx, double ddpy, double ddpz, double dleader) {
00934         dpx = ddpx;
00935         dpy = ddpy;
00936         dpz = ddpz;
00937 
00938         leader = dleader;
00939     }
00940 
00942     double dpx;
00944     double dpy;
00946     double dpz;
00947 
00949     double leader;
00950 };
00951 
00952 
00953 
00959 struct DL_DimDiametricData {
00964     DL_DimDiametricData(double ddpx, double ddpy, double ddpz, double dleader) {
00965         dpx = ddpx;
00966         dpy = ddpy;
00967         dpz = ddpz;
00968 
00969         leader = dleader;
00970     }
00971 
00973     double dpx;
00975     double dpy;
00977     double dpz;
00978 
00980     double leader;
00981 };
00982 
00983 
00984 
00990 struct DL_DimAngularData {
00995     DL_DimAngularData(double ddpx1, double ddpy1, double ddpz1,
00996                       double ddpx2, double ddpy2, double ddpz2,
00997                       double ddpx3, double ddpy3, double ddpz3,
00998                       double ddpx4, double ddpy4, double ddpz4) {
00999 
01000         dpx1 = ddpx1;
01001         dpy1 = ddpy1;
01002         dpz1 = ddpz1;
01003 
01004         dpx2 = ddpx2;
01005         dpy2 = ddpy2;
01006         dpz2 = ddpz2;
01007 
01008         dpx3 = ddpx3;
01009         dpy3 = ddpy3;
01010         dpz3 = ddpz3;
01011 
01012         dpx4 = ddpx4;
01013         dpy4 = ddpy4;
01014         dpz4 = ddpz4;
01015     }
01016 
01018     double dpx1;
01020     double dpy1;
01022     double dpz1;
01023 
01025     double dpx2;
01027     double dpy2;
01029     double dpz2;
01030 
01032     double dpx3;
01034     double dpy3;
01036     double dpz3;
01037 
01039     double dpx4;
01041     double dpy4;
01043     double dpz4;
01044 };
01045 
01046 
01052 struct DL_DimAngular3PData {
01057     DL_DimAngular3PData(double ddpx1, double ddpy1, double ddpz1,
01058                         double ddpx2, double ddpy2, double ddpz2,
01059                         double ddpx3, double ddpy3, double ddpz3) {
01060 
01061         dpx1 = ddpx1;
01062         dpy1 = ddpy1;
01063         dpz1 = ddpz1;
01064 
01065         dpx2 = ddpx2;
01066         dpy2 = ddpy2;
01067         dpz2 = ddpz2;
01068 
01069         dpx3 = ddpx3;
01070         dpy3 = ddpy3;
01071         dpz3 = ddpz3;
01072     }
01073 
01075     double dpx1;
01077     double dpy1;
01079     double dpz1;
01080 
01082     double dpx2;
01084     double dpy2;
01086     double dpz2;
01087 
01089     double dpx3;
01091     double dpy3;
01093     double dpz3;
01094 };
01095 
01096 
01097 
01103 struct DL_DimOrdinateData {
01108     DL_DimOrdinateData(double ddpx1, double ddpy1, double ddpz1,
01109                       double ddpx2, double ddpy2, double ddpz2,
01110                       bool dxtype) {
01111 
01112         dpx1 = ddpx1;
01113         dpy1 = ddpy1;
01114         dpz1 = ddpz1;
01115 
01116         dpx2 = ddpx2;
01117         dpy2 = ddpy2;
01118         dpz2 = ddpz2;
01119 
01120         xtype = dxtype;
01121     }
01122 
01124     double dpx1;
01126     double dpy1;
01128     double dpz1;
01129 
01131     double dpx2;
01133     double dpy2;
01135     double dpz2;
01136 
01138     bool xtype;
01139 };
01140 
01141 
01142 
01148 struct DL_LeaderData {
01153     DL_LeaderData(int lArrowHeadFlag,
01154                   int lLeaderPathType,
01155                   int lLeaderCreationFlag,
01156                   int lHooklineDirectionFlag,
01157                   int lHooklineFlag,
01158                   double lTextAnnotationHeight,
01159                   double lTextAnnotationWidth,
01160                   int lNumber) {
01161 
01162         arrowHeadFlag = lArrowHeadFlag;
01163         leaderPathType = lLeaderPathType;
01164         leaderCreationFlag = lLeaderCreationFlag;
01165         hooklineDirectionFlag = lHooklineDirectionFlag;
01166         hooklineFlag = lHooklineFlag;
01167         textAnnotationHeight = lTextAnnotationHeight;
01168         textAnnotationWidth = lTextAnnotationWidth;
01169         number = lNumber;
01170     }
01171 
01173     int arrowHeadFlag;
01175     int leaderPathType;
01177     int leaderCreationFlag;
01179     int hooklineDirectionFlag;
01181     int hooklineFlag;
01183     double textAnnotationHeight;
01185     double textAnnotationWidth;
01187     int number;
01188 };
01189 
01190 
01191 
01197 struct DL_LeaderVertexData {
01202     DL_LeaderVertexData(double px=0.0, double py=0.0, double pz=0.0) {
01203         x = px;
01204         y = py;
01205         z = pz;
01206     }
01207 
01209     double x;
01211     double y;
01213     double z;
01214 };
01215 
01216 
01217 
01221 struct DL_HatchData {
01225     DL_HatchData() {}
01226 
01231     DL_HatchData(int hNumLoops,
01232                  bool hSolid,
01233                  double hScale,
01234                  double hAngle,
01235                  const string& hPattern) {
01236         numLoops = hNumLoops;
01237         solid = hSolid;
01238         scale = hScale;
01239         angle = hAngle;
01240         pattern = hPattern;
01241     }
01242 
01244     int numLoops;
01246     bool solid;
01248     double scale;
01250     double angle;
01252     string pattern;
01253 };
01254 
01255 
01256 
01260 struct DL_HatchLoopData {
01264     DL_HatchLoopData() {}
01269     DL_HatchLoopData(int hNumEdges) {
01270         numEdges = hNumEdges;
01271     }
01272 
01274     int numEdges;
01275 };
01276 
01277 
01278 
01282 struct DL_HatchEdgeData {
01286     DL_HatchEdgeData() {
01287         defined = false;
01288     }
01289 
01294     DL_HatchEdgeData(double lx1, double ly1,
01295                      double lx2, double ly2) {
01296         x1 = lx1;
01297         y1 = ly1;
01298         x2 = lx2;
01299         y2 = ly2;
01300         type = 1;
01301         defined = true;
01302     }
01303 
01308     DL_HatchEdgeData(double acx, double acy,
01309                      double aRadius,
01310                      double aAngle1, double aAngle2,
01311                      bool aCcw) {
01312         cx = acx;
01313         cy = acy;
01314         radius = aRadius;
01315         angle1 = aAngle1;
01316         angle2 = aAngle2;
01317         ccw = aCcw;
01318         type = 2;
01319         defined = true;
01320     }
01321 
01325     int type;
01326 
01330     bool defined;
01331 
01333     double x1;
01335     double y1;
01337     double x2;
01339     double y2;
01341     double cx;
01343     double cy;
01345     double radius;
01347     double angle1;
01349     double angle2;
01351     bool ccw;
01352 };
01353 
01354 
01355 
01361 struct DL_ImageData {
01366     DL_ImageData(const string& iref,
01367                   double iipx, double iipy, double iipz,
01368                                               double iux, double iuy, double iuz,
01369                                               double ivx, double ivy, double ivz,
01370                                               int iwidth, int iheight,
01371                                               int ibrightness, int icontrast, int ifade) {
01372         ref = iref;
01373         ipx = iipx;
01374         ipy = iipy;
01375         ipz = iipz;
01376                       ux = iux;
01377                       uy = iuy;
01378                       uz = iuz;
01379                       vx = ivx;
01380                       vy = ivy;
01381                       vz = ivz;
01382                       width = iwidth;
01383                       height = iheight;
01384                       brightness = ibrightness;
01385                       contrast = icontrast;
01386                       fade = ifade;
01387     }
01388 
01391     string ref;
01393     double ipx;
01395     double ipy;
01397     double ipz;
01399            double ux;
01401            double uy;
01403            double uz;
01405            double vx;
01407            double vy;
01409            double vz;
01411            int width;
01413            int height;
01415            int brightness;
01417            int contrast;
01419            int fade;
01420 };
01421 
01422 
01423 
01429 struct DL_ImageDefData {
01434     DL_ImageDefData(const string& iref,
01435                                              const string& ifile) {
01436         ref = iref;
01437                       file = ifile;
01438     }
01439 
01442     string ref;
01443 
01445            string file;
01446 };
01447 
01448 #endif
01449 
01450 // EOF
01451 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines