98 lines
6.3 KiB
C++
98 lines
6.3 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, SH Software Co. Ltd.
|
|
// = FileName : XAsdkCustomWorldGeometry.h
|
|
// = Version : ver2.0
|
|
// = Author : zjq
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: 类的声明
|
|
// = Maintainers:
|
|
//
|
|
//-----------------------------------------------------------------------------+
|
|
#ifndef _XAsdkCustomWorldGeometry_H_
|
|
#define _XAsdkCustomWorldGeometry_H_
|
|
|
|
#ifndef _XAsdkCustomWorldDraw_H_
|
|
#include "XAsdkCustomWorldDraw.h"
|
|
#endif
|
|
|
|
// 此类包含独立的视图,模型坐标,3D几何方法为我们的世界几何类
|
|
// 仅是外形成员函数被执行,在他里面,外形数据被捕捉并存储在
|
|
// AsdkCustomWorldDraw的成员mpShellData中
|
|
class GEOAPI XAsdkCustomWorldGeometry : public AcGiWorldGeometry
|
|
{
|
|
public:
|
|
ACRX_DECLARE_MEMBERS(XAsdkCustomWorldGeometry);
|
|
|
|
XAsdkCustomWorldGeometry(XAsdkCustomWorldDraw* pWorldDraw);
|
|
virtual ~XAsdkCustomWorldGeometry();
|
|
|
|
virtual void getModelToWorldTransform(AcGeMatrix3d &pMatrix) const;
|
|
virtual void getWorldToModelTransform(AcGeMatrix3d &pMatrix) const;
|
|
virtual void setExtents(AcGePoint3d *pNewExtents) const;
|
|
virtual void popClipBoundary();
|
|
|
|
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;
|
|
|
|
virtual Adesk::Boolean polyline(const Adesk::UInt32 nbPoints, const AcGePoint3d* pVertexList, const AcGeVector3d* pNormal = NULL, LONG_PTR lBaseSubEntMarker = -1) const;
|
|
virtual Adesk::Boolean polygon(const Adesk::UInt32 nbPoints, const AcGePoint3d* pVertexList) const;
|
|
|
|
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 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;
|
|
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;
|
|
|
|
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 ray(const AcGePoint3d& rays_starting_point, const AcGePoint3d& a_different_ray_point) const;
|
|
virtual Adesk::Boolean xline(const AcGePoint3d& one_xline_point, const AcGePoint3d& a_different_xline_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);
|
|
virtual Adesk::Boolean pushModelTransform(const AcGeMatrix3d & xMat);
|
|
virtual Adesk::Boolean popModelTransform();
|
|
|
|
virtual Adesk::Boolean draw(AcGiDrawable*) const;
|
|
|
|
// 裁剪边界需自己释放
|
|
virtual Adesk::Boolean pushClipBoundary(AcGiClipBoundary * pBoundary);
|
|
|
|
//add by zjq on 090923 支持2009平台
|
|
#if ARX > 17
|
|
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);
|
|
|
|
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 image(const AcGiImageBGRA32& imageSource, const AcGePoint3d& position, const AcGeVector3d& u, const AcGeVector3d& v, TransparencyMode transparencyMode = kTransparency8Bit)const;
|
|
|
|
virtual Adesk::Boolean rowOfDots(int count,const AcGePoint3d& start,const AcGeVector3d& step) 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;
|
|
#endif // ADS>17
|
|
|
|
#if (ARX >= 20)
|
|
// add by gjm for objarx2015
|
|
virtual Adesk::Boolean edge(const AcArray<AcGeCurve2d*>& edges) const { return Adesk::kFalse; }
|
|
#endif
|
|
|
|
void ConvertTo3DFace(AcDbVoidPtrArray entSet) const;
|
|
|
|
private:
|
|
XAsdkCustomWorldDraw* m_pCustomWorldDraw;
|
|
};
|
|
|
|
#endif
|