167 lines
7.0 KiB
C++
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
|