Files
envi-code/SourceCode/Code2026/CoreLibrary/AecUnknownWorldGeometry.h
T
2026-09-28 15:28:50 +08:00

194 lines
7.1 KiB
C++

#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<AcGeCurve2d*>& edges) const { return Adesk::kFalse; };
#endif
private:
bool m_bToFindDrawingFrame;
bool m_bToFindForESignTrue;
AcGeMatrix3d m_lastXform;
AecUnknownWorldDraw* mpCustomWorldDraw;
};