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 "hc.h" 00013 #include "MrDwgReader.h" 00014 #include <vector> 00015 #include <acgi.h> 00016 00017 class MrDwgReader; 00018 00019 class MrDwgViewportDraw : public AcGiViewportDraw 00020 { 00021 public: 00022 ACRX_DECLARE_MEMBERS(MrDwgViewportDraw); 00023 MrDwgViewportDraw(std::vector<HC_KEY> * keys, MrDwgReader * reader); 00024 ~MrDwgViewportDraw(); 00025 00026 void setEntity(AcDbEntity * pEnt); 00027 AcGiViewport& viewport() const; 00028 AcGiViewportGeometry& geometry() const; 00029 Adesk::UInt32 sequenceNumber() const; 00030 Adesk::Boolean isValidId(const Adesk::ULongPtr acgiId) const; 00031 AcDbObjectId viewportObjectId() const; 00032 00033 AcGiRegenType regenType() const; 00034 Adesk::Boolean regenAbort() const; 00035 AcGiSubEntityTraits& subEntityTraits() const; 00036 AcGiGeometry * rawGeometry() const; 00037 Adesk::Boolean isDragging() const; 00038 00039 double deviation(const AcGiDeviationType, const AcGePoint3d&) const; 00040 Adesk::UInt32 numberOfIsolines() const; 00041 00042 AcGiContext * context(); 00043 AcDbEntity * GetCurrentEntity() const; 00044 00045 private: 00046 AcGiViewport * mpVp; 00047 AcGiViewportGeometry * mpVpGeometry; 00048 AcDbObjectId mpObjId; 00049 00050 AcGiSubEntityTraits * mpSubEntityTraits; 00051 AcGiContext * mpContext; 00052 AcGiRegenType mRegenType; 00053 00054 AcDbEntity * m_pAcDbEntity; 00055 };