Files
envi-code/SourceCode/Code2026/inc/AdsXRx/AecCurveEntity.h
T
2026-09-28 15:28:50 +08:00

167 lines
7.0 KiB
C++

//-------------------------------------------------------------------------------------------------------+
// Copyright (C), 1998-2007, SH Software Co. Ltd.
// = FileName : AecCurveEntity.h
// = Version : ver2.0
// = Author : zjq
// = CreateDate : 2002-09-09
// = Description: $曲线对象基类的声明$曲线对象基类
// = Maintainers:
//
//-------------------------------------------------------------------------------------------------------+
#ifndef _AecCurveEntity_H_
#define _AecCurveEntity_H_
#ifndef _AEntityBase_H_
#include "AEntityBase.h"
#endif
class GEOAPI AecCurveEntity: public AcDbCurve, public AEntityBase
{
AEC_DECLARE_MEMBERS();
ACRX_DECLARE_MEMBERS(AecCurveEntity);
virtual Adesk::UInt32 subViewportDrawLogicalFlags(AcGiViewportDraw * vd);
virtual Adesk::UInt32 subSetAttributes(AcGiDrawableTraits * traits);
public:
AecCurveEntity();
virtual Acad::ErrorStatus SetBaseCurve(AcDbCurve*);
virtual AcDbCurve* GetBaseCurve()const;//临时对象,外部析构
//重载 AEntityBase
virtual void UnionScale(double nScale);
virtual Acad::ErrorStatus GetOsnapPoints (AcDb::OsnapMode osnapMode,
int gsSelectionMark,
const AcGePoint3d& pickPoint,
const AcGePoint3d& lastPoint,
const AcGeMatrix3d& viewXform,
AcGePoint3dArray& snapPoints,
AcDbIntArray& geomIds) const;
virtual Acad::ErrorStatus GetOsnapPoints (AcDb::OsnapMode osnapMode,
int gsSelectionMark,
const AcGePoint3d& pickPoint,
const AcGePoint3d& lastPoint,
const AcGeMatrix3d& viewXform,
AcGePoint3dArray& snapPoints,
AcDbIntArray& geomIds,
const AcGeMatrix3d& insertionMat) const;
virtual Acad::ErrorStatus IntersectWith (const AcDbEntity* pEnt,
AcDb::Intersect intType,
AcGePoint3dArray& points,
INT_PTR thisGsMarker = 0,
INT_PTR otherGsMarker = 0) const;
virtual Acad::ErrorStatus IntersectWith (const AcDbEntity* pEnt,
AcDb::Intersect intType,
const AcGePlane& projPlane,
AcGePoint3dArray& points,
INT_PTR thisGsMarker = 0,
INT_PTR otherGsMarker = 0) const;
virtual Acad::ErrorStatus TransformBy (const AcGeMatrix3d& xform);
//重载 AcDbCurve
virtual Adesk::Boolean isClosed () const;
virtual Adesk::Boolean isPeriodic () const;
virtual Acad::ErrorStatus getStartParam (double&) const;
virtual Acad::ErrorStatus getEndParam (double&) const;
virtual Acad::ErrorStatus getStartPoint (AcGePoint3d&) const;
virtual Acad::ErrorStatus getEndPoint (AcGePoint3d&) const;
virtual Acad::ErrorStatus getPointAtParam (double, AcGePoint3d&) const;
virtual Acad::ErrorStatus getParamAtPoint (const AcGePoint3d&, double&)const;
virtual Acad::ErrorStatus getDistAtParam (double param, double& dist) const;
virtual Acad::ErrorStatus getParamAtDist (double dist, double& param) const;
virtual Acad::ErrorStatus getDistAtPoint (const AcGePoint3d&, double&)const;
virtual Acad::ErrorStatus getPointAtDist (double, AcGePoint3d&) const;
virtual Acad::ErrorStatus getFirstDeriv (double param,AcGeVector3d& firstDeriv) const;
virtual Acad::ErrorStatus getFirstDeriv (const AcGePoint3d&,AcGeVector3d& firstDeriv) const;
virtual Acad::ErrorStatus getSecondDeriv (double param,AcGeVector3d& secDeriv) const;
virtual Acad::ErrorStatus getSecondDeriv (const AcGePoint3d&,AcGeVector3d& secDeriv) const;
virtual Acad::ErrorStatus getClosestPointTo(const AcGePoint3d& givenPnt,
AcGePoint3d& pointOnCurve,
Adesk::Boolean extend = Adesk::kFalse) const;
virtual Acad::ErrorStatus getClosestPointTo(const AcGePoint3d& givenPnt,
const AcGeVector3d& direction,
AcGePoint3d& pointOnCurve,
Adesk::Boolean extend = Adesk::kFalse) const;
virtual Acad::ErrorStatus getSplitCurves (const AcGeDoubleArray& params, AcDbVoidPtrArray& curveSegments) const;
virtual Acad::ErrorStatus getSplitCurves (const AcGePoint3dArray& points, AcDbVoidPtrArray& curveSegments) const;
virtual Acad::ErrorStatus extend (double newParam);
virtual Acad::ErrorStatus extend (Adesk::Boolean extendStart, const AcGePoint3d& toPoint);
virtual Acad::ErrorStatus getSpline (AcDbSpline*& spline) const;
virtual Acad::ErrorStatus getArea (double&) const;
virtual Acad::ErrorStatus getOffsetCurves (double offsetDist, AcDbVoidPtrArray& offsetCurves) const;
virtual Acad::ErrorStatus getProjectedCurve(const AcGePlane&, const AcGeVector3d& projDir, AcDbCurve*& projCrv) const;
virtual Acad::ErrorStatus getOrthoProjectedCurve(const AcGePlane&, AcDbCurve*& projCrv) const;
virtual Acad::ErrorStatus getOffsetCurvesGivenPlaneNormal(const AcGeVector3d& normal,double offsetDist,AcDbVoidPtrArray& offsetCurves) const;
//重载 AcDbEntity
virtual Adesk::Boolean isPlanar () const;
virtual Acad::ErrorStatus getPlane (AcGePlane&, AcDb::Planarity&) const;
virtual void getEcs (AcGeMatrix3d& retVal) const;
#if (ADS > 15 && ADS < 18)
virtual Acad::ErrorStatus subGetOsnapPoints(AcDb::OsnapMode osnapMode,
INT_PTR gsSelectionMark,
const AcGePoint3d& pickPoint,
const AcGePoint3d& lastPoint,
const AcGeFastTransform& viewXform,
AcGePoint3dArray& snapPoints,
AcDbIntArray& geomIds) const;
virtual Acad::ErrorStatus subGetOsnapPoints(AcDb::OsnapMode osnapMode,
INT_PTR gsSelectionMark,
const AcGePoint3d& pickPoint,
const AcGePoint3d& lastPoint,
const AcGeFastTransform& viewXform,
AcGePoint3dArray& snapPoints,
AcDbIntArray& geomIds,
const AcGeMatrix3d& insertionMat) const;
virtual Acad::ErrorStatus subTransformBy (const AcGeFastTransform& xform);
#endif
virtual Acad::ErrorStatus subGetGripPoints (AcGePoint3dArray& gripPoints,
AcDbIntArray& osnapModes,
AcDbIntArray& geomIds) const;
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset);
#if ARX > 17
virtual void subGripStatus(const AcDb::GripStat status);
virtual Acad::ErrorStatus subGetGripPoints (AcDbGripDataPtrArray& grips,
const double curViewUnitSize,
const int gripSize,
const AcGeVector3d& curViewDir,
const int bitflags) const;
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray& appData,
const AcGeVector3d& offset,
const int bitflags);
#endif
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints) const;
virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset);
//add by zjq on 100304 调整InitLayer的调用方式
virtual AcDbObjectId InitLayer(LPCTSTR pszLayer, BOOL bApplyChange = TRUE);
};
#endif