Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

MrDwgGeometry.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 <vector>
00013 #include <map>
00014 
00015 #include <adesk.h>
00016 #include <acgi.h>
00017 
00018 #include "hc.h"
00019 #include "misc.h"
00020 
00021 class MrDwgGeometry
00022 {
00023 protected:
00024     void open_direction_segment(const AcGeVector3d & direction) const;
00025     void open_height_segment(double height) const;
00026 
00027 public:
00028     Adesk::Boolean circle(const AcGePoint3d & center, const double radius, const AcGeVector3d & normal) const;
00029     Adesk::Boolean circle(const AcGePoint3d & pt1, const AcGePoint3d & pt2, const AcGePoint3d & pt3) const;
00030     Adesk::Boolean circularArc(const AcGePoint3d & center, const double radius, const AcGeVector3d & normal, const AcGeVector3d & startVector, const double sweepAngle, const AcGiArcType arcType) const;
00031     Adesk::Boolean circularArc(const AcGePoint3d & start, const AcGePoint3d & point, const AcGePoint3d & end, const AcGiArcType arcType) const;
00032     Adesk::Boolean ellipticalArc(const AcGePoint3d& center, const AcGeVector3d& normal, double majorAxisLength, double minorAxisLength, double startDegreeInRads, double endDegreeInRads, double tiltDegreeInRads, AcGiArcType arcType) const;
00033     Adesk::Boolean polyline(const Adesk::UInt32 nbPoints, const AcGePoint3d * pVertexList, const AcGeVector3d * pNormal, Adesk::LongPtr lBaseSubEntMarker) const;
00034     Adesk::Boolean polyline(const AcGiPolyline & polylineObj) const;
00035     Adesk::Boolean polyPolyline(Adesk::UInt32 nbPolylines, const AcGiPolyline * pPolylines) const;
00036     Adesk::Boolean polygon(const Adesk::UInt32 nbPoints, const AcGePoint3d * pVertexList) const;
00037     Adesk::Boolean pline(const AcDbPolyline & lwBuf, Adesk::UInt32 fromIndex, Adesk::UInt32 numSegs) const;
00038     Adesk::Boolean mesh(const Adesk::UInt32 rows, const Adesk::UInt32 columns, const AcGePoint3d * pVertexList, const AcGiEdgeData * pEdgeData, const AcGiFaceData * pFaceData, const AcGiVertexData * pVertexData, const bool bAutoGenerateNormals) const;
00039     Adesk::Boolean ray(const AcGePoint3d & origin, const AcGePoint3d & other_point) const;
00040     Adesk::Boolean shell(const Adesk::UInt32 nbVertex, const AcGePoint3d * pVertexList, const Adesk::UInt32 faceListSize, const Adesk::Int32 * pFaceList, const AcGiEdgeData * pEdgeData, const AcGiFaceData * pFaceData, const AcGiVertexData * pVertexData, const struct resbuf * pResBuf, const bool bAutoGenerateNormals) const;
00041     Adesk::Boolean text(const AcGePoint3d & position, const AcGeVector3d & normal, const AcGeVector3d & direction, const double height, const double width, const double oblique, const ACHAR * pMsg, AcDbEntity * pEnt = 0) const;
00042     Adesk::Boolean text(const AcGePoint3d & position, const AcGeVector3d & normal, const AcGeVector3d & direction, const ACHAR * pMsg, const Adesk::Int32 length, const Adesk::Boolean raw, const AcGiTextStyle & pTextStyle, std::map<std::wstring, std::string> * fontmap, mTextData * mtext, AcDbEntity * pEnt = 0, HC_KEY entityInsertionSegment = -1) const;
00043     Adesk::Boolean xline(const AcGePoint3d & one_xline_point, const AcGePoint3d & a_different_xline_point) const;
00044 
00045     std::vector<HC_KEY> * m_keys;
00046     void addKeyToVector(HC_KEY keyToAdd) const;
00047     void addKeysToVector(HC_KEY * keysToAdd, int numberOfKeys) const;
00048 };