Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

MrDwgSubEntityTraits.h
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 };