Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

MrDwgViewportGeometry.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 "MrDwgGeometry.h"
00013 #include "MrDwgViewportDraw.h"
00014 
00015 #include <acgi.h>
00016 
00017 class MrDwgViewportGeometry : public AcGiViewportGeometry, public MrDwgGeometry
00018 {
00019 public:
00020     ACRX_DECLARE_MEMBERS(MrDwgViewportGeometry);
00021     MrDwgViewportGeometry();
00022     ~MrDwgViewportGeometry();
00023 
00024     Adesk::Boolean polylineEye(const Adesk::UInt32 nbPoints, const AcGePoint3d * pPoints) const;
00025     Adesk::Boolean polygonEye(const Adesk::UInt32 nbPoints, const AcGePoint3d * pPoints) const;
00026     Adesk::Boolean polylineDc(const Adesk::UInt32 nbPoints, const AcGePoint3d * pPoints) const;
00027     Adesk::Boolean polygonDc(const Adesk::UInt32 nbPoints, const AcGePoint3d * pPoints) const;
00028     Adesk::Boolean rasterImageDc(const AcGePoint3d & origin, const AcGeVector3d & u, const AcGeVector3d & v, const AcGeMatrix2d & pixelToDc, AcDbObjectId entityId, AcGiImageOrg imageOrg, Adesk::UInt32 imageWidth, Adesk::UInt32 imageHeight, Adesk::Int16 imageColorDepth, Adesk::Boolean transparency, ImageSource source, const AcGeVector3d & unrotatedU, const AcGiImageOrg origionalImageOrg, const AcGeMatrix2d & unrotatedPixelToDc, const Adesk::UInt32 unrotatedImageWidth, const Adesk::UInt32 unrotatedImageHeight) const;
00029     Adesk::Boolean ownerDrawDc(long vpnumber, long left, long top, long right, long bottom, const OwnerDraw * pOwnerDraw) const;
00030     Adesk::Boolean ownerDraw3d(AcGePoint3d & minBounds, AcGePoint3d & maxBounds, OwnerDraw3d * pOwnerDraw) const;
00031     Adesk::Boolean edge(const AcArray<AcGeCurve2d *> &) const;
00032 
00033     void getModelToWorldTransform(AcGeMatrix3d &) const;
00034     void getWorldToModelTransform(AcGeMatrix3d &) const;
00035 
00036     Adesk::Boolean pushModelTransform(const AcGeVector3d & vNormal);
00037     Adesk::Boolean pushModelTransform(const AcGeMatrix3d & xMat);
00038     Adesk::Boolean popModelTransform();
00039 
00040     AcGeMatrix3d pushPositionTransform(AcGiPositionTransformBehavior behavior, const AcGePoint3d & offset);
00041     AcGeMatrix3d pushPositionTransform(AcGiPositionTransformBehavior behavior, const AcGePoint2d & offset);
00042     AcGeMatrix3d pushScaleTransform(AcGiScaleTransformBehavior behavior, const AcGePoint3d & extents);
00043     AcGeMatrix3d pushScaleTransform(AcGiScaleTransformBehavior behavior, const AcGePoint2d & extents);
00044     AcGeMatrix3d pushOrientationTransform(AcGiOrientationTransformBehavior behavior);
00045 
00046     Adesk::Boolean circle(const AcGePoint3d & center, const double radius, const AcGeVector3d & normal) const;
00047     Adesk::Boolean circle(const AcGePoint3d &, const AcGePoint3d &, const AcGePoint3d &) const;
00048     Adesk::Boolean circularArc(const AcGePoint3d & center, const double radius, const AcGeVector3d & normal, const AcGeVector3d & startVector, const double sweepAngle, const AcGiArcType arcType = kAcGiArcSimple) const;
00049     Adesk::Boolean circularArc(const AcGePoint3d & start, const AcGePoint3d & point, const AcGePoint3d & end, const AcGiArcType arcType = kAcGiArcSimple) const;
00050     Adesk::Boolean polyline(const Adesk::UInt32 nbPoints, const AcGePoint3d * pVertexList, const AcGeVector3d * pNormal = NULL, Adesk::LongPtr lBaseSubEntMarker = -1) const;
00051     Adesk::Boolean polyline(const AcGiPolyline & polylineObj) const;
00052     Adesk::Boolean polyPolyline(Adesk::UInt32 nbPolylines, const AcGiPolyline * pPolylines) const;
00053     Adesk::Boolean polyPolygon(const Adesk::UInt32 numPolygonIndices, const Adesk::UInt32 * numPolygonPositions, const AcGePoint3d * polygonPositions, const Adesk::UInt32 * numPolygonPoints, const AcGePoint3d * polygonPoints, const AcCmEntityColor * outlineColors = NULL, const AcGiLineType * outlineTypes = NULL, const AcCmEntityColor * fillColors = NULL, const AcCmTransparency * fillOpacities = NULL) const;
00054     Adesk::Boolean image(const AcGiImageBGRA32 & imageSource, const AcGePoint3d & position, const AcGeVector3d & u, const AcGeVector3d & v, TransparencyMode transparencyMode = kTransparency8Bit) const;
00055     Adesk::Boolean rowOfDots(int count, const AcGePoint3d & start, const AcGeVector3d & step) const;
00056     Adesk::Boolean ellipticalArc(const AcGePoint3d & center, const AcGeVector3d & normal, double majorAxisLength, double minorAxisLength, double startDegreeInRads, double endDegreeInRads, double tiltDegreeInRads, AcGiArcType arcType = kAcGiArcSimple) const;
00057 
00058     Adesk::Boolean polygon(const Adesk::UInt32 nbPoints, const AcGePoint3d * pVertexList) const;
00059     Adesk::Boolean mesh(const Adesk::UInt32 rows, const Adesk::UInt32 columns, const AcGePoint3d * pVertexList, const AcGiEdgeData * pEdgeData = NULL, const AcGiFaceData * pFaceData = NULL, const AcGiVertexData * pVertexData = NULL, const bool bAutoGenerateNormals = true) const;
00060     Adesk::Boolean shell(const Adesk::UInt32 nbVertex, const AcGePoint3d * pVertexList, const Adesk::UInt32 faceListSize, const Adesk::Int32 * pFaceList, const AcGiEdgeData * pEdgeData = NULL, const AcGiFaceData * pFaceData = NULL, const AcGiVertexData * pVertexData = NULL, const struct resbuf *pResBuf = NULL, const bool bAutoGenerateNormals = true) const;
00061     Adesk::Boolean text(const AcGePoint3d & position, const AcGeVector3d & normal, const AcGeVector3d & direction, const double height, const double width, const double oblique, const ACHAR * pMsg) const;
00062     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) const;
00063     Adesk::Boolean xline(const AcGePoint3d &, const AcGePoint3d &) const;
00064     Adesk::Boolean ray(const AcGePoint3d &, const AcGePoint3d &) const;
00065     Adesk::Boolean pline(const AcDbPolyline & lwBuf, Adesk::UInt32 fromIndex = 0, Adesk::UInt32 numSegs = 0) const;
00066 
00067     Adesk::Boolean draw(AcGiDrawable *) const;
00068 
00069     Adesk::Boolean pushClipBoundary(AcGiClipBoundary * pBoundary);
00070     void popClipBoundary();
00071 
00072     std::map<std::wstring, std::string> * m_pFontmap;
00073     mTextData * m_pMText;
00074     HC_KEY m_entitySegment;
00075 };