#pragma once #include "acgi.h" class AecUnknownWorldDraw; class AecUnknownWorldGeometry : public AcGiWorldGeometry { public: ACRX_DECLARE_MEMBERS(AecUnknownWorldGeometry); AecUnknownWorldGeometry(); AecUnknownWorldGeometry(AecUnknownWorldDraw* pWorldDraw); ~AecUnknownWorldGeometry(); void setToFindDrawingFrame(); void setToFindForESignTrue(); virtual void getModelToWorldTransform(AcGeMatrix3d &pMatrix) const; virtual void getWorldToModelTransform(AcGeMatrix3d &pMatrix) const; virtual void setExtents(AcGePoint3d *pNewExtents) const; virtual Adesk::Boolean circle(const AcGePoint3d& center, const double radius, const AcGeVector3d& normal ) const; virtual Adesk::Boolean circle(const AcGePoint3d& pt1, const AcGePoint3d& pt2, const AcGePoint3d& pt3 ) const; virtual Adesk::Boolean circularArc(const AcGePoint3d& center, const double radius, const AcGeVector3d& normal, const AcGeVector3d& startVector, const double sweepAngle, const AcGiArcType arcType = kAcGiArcSimple ) const; virtual Adesk::Boolean circularArc(const AcGePoint3d& start, const AcGePoint3d& point, const AcGePoint3d& end, const AcGiArcType arcType = kAcGiArcSimple ) const; #if (ARX>=18) virtual Adesk::Boolean polyline(const AcGiPolyline& polylineObj) const; virtual Adesk::Boolean polyPolyline( Adesk::UInt32 nbPolylines, const AcGiPolyline* pPolylines) const ; virtual 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; virtual Adesk::Boolean ellipticalArc(const AcGePoint3d& center, const AcGeVector3d& normal, double majorAxisLength, double minorAxisLength, double startDegreeInRads, double endDegreeInRads, double tiltDegreeInRads, AcGiArcType arcType = kAcGiArcSimple ) const; virtual Adesk::Boolean image( const AcGiImageBGRA32& imageSource, const AcGePoint3d& position, const AcGeVector3d& u, //orientation and magnitude of width const AcGeVector3d& v, //orientation and magnitude of height TransparencyMode transparencyMode = kTransparency8Bit ) const; virtual Adesk::Boolean rowOfDots( int count, const AcGePoint3d& start, const AcGeVector3d& step ) const; #endif #ifdef _WIN64 virtual Adesk::Boolean polyline(const Adesk::UInt32 nbPoints, const AcGePoint3d* pVertexList, const AcGeVector3d* pNormal = NULL, Adesk::LongPtr lBaseSubEntMarker = -1) const; #else virtual Adesk::Boolean polyline(const Adesk::UInt32 nbPoints, const AcGePoint3d* pVertexList, const AcGeVector3d* pNormal = NULL, Adesk::Int32 lBaseSubEntMarker = -1) const; #endif virtual Adesk::Boolean polygon(const Adesk::UInt32 nbPoints, const AcGePoint3d* pVertexList ) const; #if ARX>16 virtual 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; virtual 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; #else virtual 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; virtual 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; #endif virtual Adesk::Boolean text(const AcGePoint3d& position, const AcGeVector3d& normal, const AcGeVector3d& direction, const double height, const double width, const double oblique, const TCHAR* pMsg ) const; virtual Adesk::Boolean text(const AcGePoint3d& position, const AcGeVector3d& normal, const AcGeVector3d& direction, const TCHAR* pMsg, const Adesk::Int32 length, const Adesk::Boolean raw, const AcGiTextStyle &pTextStyle ) const; virtual Adesk::Boolean xline(const AcGePoint3d& one_xline_point, const AcGePoint3d& a_different_xline_point ) const; virtual Adesk::Boolean ray(const AcGePoint3d& rays_starting_point, const AcGePoint3d& a_different_ray_point ) const; virtual Adesk::Boolean pline(const AcDbPolyline& lwBuf, Adesk::UInt32 fromIndex = 0, Adesk::UInt32 numSegs = 0 ) const; virtual Adesk::Boolean pushModelTransform(const AcGeVector3d & vNormal);// Uses arbitrary Axis algorythm virtual Adesk::Boolean pushModelTransform(const AcGeMatrix3d & xMat); virtual Adesk::Boolean popModelTransform(); #if (ARX>=18) virtual AcGeMatrix3d pushPositionTransform (AcGiPositionTransformBehavior behavior, const AcGePoint3d& offset); virtual AcGeMatrix3d pushPositionTransform (AcGiPositionTransformBehavior behavior, const AcGePoint2d& offset); virtual AcGeMatrix3d pushScaleTransform (AcGiScaleTransformBehavior behavior, const AcGePoint3d& extents); virtual AcGeMatrix3d pushScaleTransform (AcGiScaleTransformBehavior behavior, const AcGePoint2d& extents); virtual AcGeMatrix3d pushOrientationTransform (AcGiOrientationTransformBehavior behavior); #endif virtual Adesk::Boolean draw(AcGiDrawable*) const; // If you push a clip boundary onto the stack you must pop it; virtual Adesk::Boolean pushClipBoundary(AcGiClipBoundary * pBoundary); /*NEW*/virtual void popClipBoundary(); #if ARX > 19 virtual Adesk::Boolean edge(const AcArray& edges) const { return Adesk::kFalse; }; #endif private: bool m_bToFindDrawingFrame; bool m_bToFindForESignTrue; AcGeMatrix3d m_lastXform; AecUnknownWorldDraw* mpCustomWorldDraw; };