00001 // Copyright (c) 1998-2014 by Tech Soft 3D, Inc. 00002 // 00003 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc., 00004 // and considered a trade secret as defined under civil and criminal statutes. 00005 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of 00006 // unauthorized use or misappropriation of its trade secrets. Use of this information 00007 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under 00008 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use. 00009 00010 #pragma once 00011 00012 #include <acgi.h> 00013 #include "MrDwgReader.h" 00014 00015 class MrDwgReader; 00016 00017 class MrDwgSubEntityTraits : public AcGiSubEntityTraits 00018 { 00019 protected: 00020 double m_dThickness; 00021 AcCmEntityColor m_entityColor; 00022 AcCmTransparency m_transparency; 00023 AcDbObjectId m_layerId; 00024 AcGiFillType m_fillType; 00025 AcDbObjectId m_linetypeId; 00026 AcDb::LineWeight m_lineWeight; 00027 bool m_colorSet; 00028 bool m_lineWeightSet; 00029 bool m_sorted; 00030 MrDwgReader * m_reader; 00031 00032 void sort(); 00033 void unsort(); 00034 00035 public: 00036 MrDwgSubEntityTraits(MrDwgReader * reader); 00037 ~MrDwgSubEntityTraits(); 00038 00039 void setColor(const Adesk::UInt16 color); 00040 void setTrueColor(const AcCmEntityColor & color); 00041 void setLayer(const AcDbObjectId layerId); 00042 void setLineType(const AcDbObjectId linetypeId); 00043 void setSelectionMarker(const Adesk::LongPtr markerId); 00044 void setFillType(const AcGiFillType); 00045 void setLineWeight(const AcDb::LineWeight lw); 00046 Adesk::UInt16 color() const; 00047 AcCmEntityColor trueColor() const; 00048 AcDbObjectId layerId() const; 00049 AcDbObjectId lineTypeId() const; 00050 AcGiFillType fillType() const; 00051 AcDb::LineWeight lineWeight() const; 00052 void setTransparency(const AcCmTransparency & transparency); 00053 00054 void setLineTypeScale(double); 00055 double lineTypeScale() const; 00056 double m_dLTScale; 00057 00058 void setThickness(double dThickness); 00059 double thickness() const; 00060 };