FRX SDK Documentation 2025 SP0
Loading...
Searching...
No Matches
AcGeImpEllipArc3d.h
Go to the documentation of this file.
1#pragma once
2
3//
4// (C) Copyright 2005-2024 by Graebert GmbH.
5//
6// Permission to use, copy, modify, and distribute this software in
7// object code form for any purpose and without fee is hereby granted,
8// provided that the above copyright notice appears in all copies and
9// that both that copyright notice and the limited warranty and
10// restricted rights notice below appear in all supporting
11// documentation.
12//
13// GRAEBERT PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
14// GRAEBERT SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
15// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. GRAEBERT GMBH
16// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
17// UNINTERRUPTED OR ERROR FREE.
18
19#include "..\acge17\AcGe.h"
20
21template < typename Param1 > class AcArrayMemCopyReallocator;
24class AcGeImpCurve3d;
25class AcGeImpEntity3d;
26class AcGeImpInterval;
28class AcGeImpObject;
31class AcGeMatrix3d;
32class AcGePoint3d;
34class AcGeTol;
35class AcGeVector3d;
36
38{
39public:
40 AcGeImpEllipArc3d( AcGeImpCurve3d const &, AcGeImpCurve3d const &, AcGeImpCurve3d const &,double &,double &,double &,int &);
41 AcGeImpEllipArc3d( AcGeImpCurve3d const &, AcGeImpCurve3d const &,double,double &,double &,int &);
44 AcGeImpEllipArc3d( AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &,double,double);
45 AcGeImpEllipArc3d( AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &,double,double,double,double);
46 AcGeImpEllipArc3d( AcGePoint3d const &, AcGeVector3d const &,double);
50 AcGeImpEllipArc3d & set( AcGeImpCurve3d const &, AcGeImpCurve3d const &, AcGeImpCurve3d const &,double &,double &,double &,int &);
51 AcGeImpEllipArc3d & set( AcGeImpCurve3d const &, AcGeImpCurve3d const &,double,double &,double &,int &);
53 AcGeImpEllipArc3d & set( AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &,double,double);
54 AcGeImpEllipArc3d & set( AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &,double,double,double,double);
55 AcGeImpEllipArc3d & set( AcGePoint3d const &, AcGeVector3d const &,double);
56 AcGeImpEllipArc3d & setAngles(double,double,int);
59 AcGeImpEllipArc3d & setRadii(double,double);
60 AcGePoint3d center(void)const ;
61 AcGePoint3d endPoint(void)const ;
65 AcGeVector3d normal(void)const ;
66 double endAngle(void)const ;
67 double majorRadius(void)const ;
68 double minorRadius(void)const ;
69 double startAngle(void)const ;
70 int intersectWithArc( AcGeImpEllipArc3d const &,int &, AcGePoint3d &, AcGePoint3d &,int &, AcGeTol const & = AcGeContext::gTol)const ;
71 int intersectWithLine( AcGeImpLinearEnt3d const &,int &, AcGePoint3d &, AcGePoint3d &,int &, AcGeTol const & = AcGeContext::gTol)const ;
72 int intersectWithPlane( AcGeImpPlanarEnt const &,int &, AcGePoint3d &, AcGePoint3d &,int &, AcGeTol const & = AcGeContext::gTol)const ;
73 int isCircular( AcGeTol const & = AcGeContext::gTol)const ;
74 int isInside( AcGePoint3d const &, AcGeTol const & = AcGeContext::gTol)const ;
75 int isPlanar( AcGeTol const & = AcGeContext::gTol)const ;
79 virtual ~AcGeImpEllipArc3d(void);
80 virtual AcGeImpBoundBlock3d boundBlock(int, AcGeImpInterval const &,int)const ;
83 virtual AcGeImpCurve3d & setInterval(void);
84 virtual AcGeImpEntity3d & scaleBy(double, AcGePoint3d const &);
88 virtual AcGeImpEntity3d * project( AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeTol const & = AcGeContext::gTol)const ;
89 virtual AcGeImpObject * copy(void)const ;
91 virtual AcGePoint3d evalPoint(double)const ;
93 virtual double length(double,double,double)const ;
94 virtual double paramAtLength(double,double,int,double)const ;
95 virtual double paramOf( AcGePoint3d const &, AcGeTol const & = AcGeContext::gTol)const ;
96 virtual AcGe::EntityId type(int)const ;
97 virtual int area(double,double,double &, AcGeTol const & = AcGeContext::gTol)const ;
99 virtual int intersectSelf( AcGeCurveIntData &, AcGeVector3d const &,double, AcGeTol const & = AcGeContext::gTol)const ;
100 virtual int intersectWith( AcGeImpCurve3d const &, AcGeVector3d const &, AcGeCurveIntData &, AcGeTol const & = AcGeContext::gTol)const ;
101 virtual int intersectWith( AcGeImpInterval const &, AcGeImpInterval const &, AcGeVector3d const &, AcGeCurveIntData &, AcGeTol const & = AcGeContext::gTol)const ;
102 virtual int isClosed( AcGeTol const & = AcGeContext::gTol)const ;
103 virtual int isDegenerate( AcGeImpEntity3d * &, AcGeTol const & = AcGeContext::gTol)const ;
104 virtual int isDegenerate( AcGe::EntityId &, AcGeTol const & = AcGeContext::gTol)const ;
105 virtual int isEqualTo( AcGeImpEntity3d const &, AcGeTol const & = AcGeContext::gTol)const ;
106 virtual int isLinear( AcGeImpLinearEnt3d &, AcGeTol const & = AcGeContext::gTol)const ;
107 virtual int isOn( AcGePoint3d const &, AcGeTol const & = AcGeContext::gTol)const ;
108 virtual int isOn( AcGePoint3d const &,double &, AcGeTol const & = AcGeContext::gTol)const ;
109 virtual int isOn(double, AcGeTol const & = AcGeContext::gTol)const ;
110 virtual int isPeriodic(double &,int)const ;
111 virtual int isPlanar( AcGeImpPlanarEnt &, AcGeTol const & = AcGeContext::gTol)const ;
112 virtual int unboundedOverlap( AcGeImpCurve3d const &,int &, AcGeTol const & = AcGeContext::gTol)const ;
113 virtual void * getExternalEntity(void)const ;
117 virtual void getInterval( AcGeImpInterval &,int,int)const ;
119 virtual void getSplitCurves(double, AcGeImpCurve3d * &, AcGeImpCurve3d * &)const ;
123
124private:
125 AcGeImpEllipArc3d & set( AcGeImpLinearEnt3d const &, AcGeImpLinearEnt3d const &, AcGeImpLinearEnt3d const &,double &,double &,double &,int &);
126 double adjustParam(double)const ;
127 int intersectWithPlane( AcGeImpPlanarEnt const &,int &, AcGePoint3d &, AcGePoint3d &,int &, AcGePoint3d &, AcGePoint3d &,int &, AcGeTol const & = AcGeContext::gTol)const ;
128 int reverseMap( AcGePoint3d const &, AcGeMatrix3d const &, AcGeImpPointOnCurve3d &, AcGeTol const & = AcGeContext::gTol)const ;
129 virtual int isWithinBounds( AcGePoint3d const &, AcGeTol const & = AcGeContext::gTol)const ;
130 virtual void evaluate(int, AcGePointOnCurve3dData &,int)const ;
131 virtual void reverseProject( AcGeImpPointOnCurve3d const &, AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeImpPointOnCurve3d &, AcGeTol const & = AcGeContext::gTol)const ;
132 void normalizeAngles(void);
133 void normalizeParam(double &)const ;
134
135};
AcGeVector3d majorAxis(void) const
virtual AcGeImpBoundBlock3d boundBlock(int, AcGeImpInterval const &, int) const
AcGePoint3d startPoint(void) const
int projIntersectWith(AcGeImpLinearEnt3d const &, AcGeVector3d const &, int &, AcGePoint3d &, AcGePoint3d &, AcGePoint3d &, AcGePoint3d &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpEllipArc3d & setCenter(AcGePoint3d const &)
virtual AcGeImpCurve3d & reverseParam(void)
virtual int isOn(double, AcGeTol const &=AcGeContext::gTol) const
double majorRadius(void) const
int intersectWithPlane(AcGeImpPlanarEnt const &, int &, AcGePoint3d &, AcGePoint3d &, int &, AcGeTol const &=AcGeContext::gTol) const
void getPlane(AcGeImpPlanarEnt &) const
AcGeImpEllipArc3d & set(AcGeImpCurve3d const &, AcGeImpCurve3d const &, double, double &, double &, int &)
AcGeImpEllipArc3d & set(AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &, double, double, double, double)
virtual int isDegenerate(AcGe::EntityId &, AcGeTol const &=AcGeContext::gTol) const
virtual int isPlanar(AcGeImpPlanarEnt &, AcGeTol const &=AcGeContext::gTol) const
double endAngle(void) const
virtual int isLinear(AcGeImpLinearEnt3d &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGe::EntityId type(int) const
void getClosestPointToLine(AcGeImpLinearEnt3d const &, AcGeImpPointOnCurve3d &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
virtual int isPeriodic(double &, int) const
virtual AcGeImpEntity3d * project(AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGeImpEntity3d & scaleBy(double, AcGePoint3d const &)
int isInside(AcGePoint3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual void * getExternalEntity(void) const
virtual AcGeImpObject * copy(void) const
void getClosestPointToArc(AcGeImpEllipArc3d const &, AcGeImpPointOnCurve3d &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpEllipArc3d(AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &, double, double)
AcGeImpEllipArc3d & setAxes(AcGeVector3d const &, AcGeVector3d const &)
AcGeImpEllipArc3d(AcGeImpCurve3d const &, AcGeImpCurve3d const &, double, double &, double &, int &)
virtual int isOn(AcGePoint3d const &, AcGeTol const &=AcGeContext::gTol) const
int intersectWithArc(AcGeImpEllipArc3d const &, int &, AcGePoint3d &, AcGePoint3d &, int &, AcGeTol const &=AcGeContext::gTol) const
virtual void getInterval(AcGeImpInterval &, int, int) const
AcGeImpEllipArc3d(AcGePoint3d const &, AcGePoint3d const &, AcGePoint3d const &)
AcGeImpEllipArc3d & set(AcGePoint3d const &, AcGeVector3d const &, double)
double startAngle(void) const
virtual AcGePoint3d evalPoint(double) const
virtual int intersectWith(AcGeImpInterval const &, AcGeImpInterval const &, AcGeVector3d const &, AcGeCurveIntData &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpEllipArc3d(AcGeImpEllipArc3d const &)
AcGeImpEllipArc3d & set(AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &, double, double)
virtual int intersectSelf(AcGeCurveIntData &, AcGeVector3d const &, double, AcGeTol const &=AcGeContext::gTol) const
virtual AcGeImpCurve3d & setInterval(void)
virtual void getInterval(AcGeImpInterval &, AcGePoint3d &, AcGePoint3d &) const
virtual AcGeImpEntity3d * exactOffset(double, AcGeVector3d const &, AcGeDoubleArray *, AcGeDoubleArray *, AcGe::OffsetCrvExtType, AcGeTol const &=AcGeContext::gTol) const
virtual void getSamplePoints(double, double, double, AcGeImpPointOnCurve3d &, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > &, AcGeDoubleArray &, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > *, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > *) const
AcGeImpEllipArc3d & set(AcGeImpCurve3d const &, AcGeImpCurve3d const &, AcGeImpCurve3d const &, double &, double &, double &, int &)
virtual AcGeImpCurve3d & setInterval(AcGeImpInterval const &, int)
virtual int unboundedOverlap(AcGeImpCurve3d const &, int &, AcGeTol const &=AcGeContext::gTol) const
virtual double paramAtLength(double, double, int, double) const
virtual AcGeImpEntity3d & transformBy(AcGeMatrix3d const &)
AcGeImpEllipArc3d & setRadii(double, double)
AcGeImpEllipArc3d & set(AcGePoint3d const &, AcGePoint3d const &, AcGePoint3d const &)
AcGeImpEllipArc3d & setAngles(double, double, int)
virtual int isOn(AcGePoint3d const &, double &, AcGeTol const &=AcGeContext::gTol) const
int isPlanar(AcGeTol const &=AcGeContext::gTol) const
virtual int isClosed(AcGeTol const &=AcGeContext::gTol) const
virtual int getNormalPoint(AcGePoint3d const &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGePoint3d evalPoint(double, int, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > &) const
AcGeVector3d normal(void) const
AcGeImpEllipArc3d(AcGePoint3d const &, AcGeVector3d const &, double)
AcGeImpEllipArc3d(AcGeImpCurve3d const &, AcGeImpCurve3d const &, AcGeImpCurve3d const &, double &, double &, double &, int &)
AcGeImpEllipArc3d & operator=(AcGeImpEllipArc3d const &)
virtual void getClosestPointTo(AcGePoint3d const &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGeImpEntity3d & translateBy(AcGeVector3d const &)
virtual int intersectWith(AcGeImpCurve3d const &, AcGeVector3d const &, AcGeCurveIntData &, AcGeTol const &=AcGeContext::gTol) const
virtual void getClosestPointTo(AcGeImpCurve3d const &, AcGeImpPointOnCurve3d &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
virtual double paramOf(AcGePoint3d const &, AcGeTol const &=AcGeContext::gTol) const
AcGePoint3d center(void) const
int tangent(AcGePoint3d const &, AcGeImpPointOnCurve3d &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
AcGeVector3d minorAxis(void) const
double minorRadius(void) const
AcGePoint3d endPoint(void) const
virtual double length(double, double, double) const
AcGeImpEllipArc3d(AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &, double, double, double, double)
virtual int isDegenerate(AcGeImpEntity3d *&, AcGeTol const &=AcGeContext::gTol) const
int isCircular(AcGeTol const &=AcGeContext::gTol) const
virtual ~AcGeImpEllipArc3d(void)
virtual void getSplitCurves(double, AcGeImpCurve3d *&, AcGeImpCurve3d *&) const
AcGeImpCurve3d & setInterval(AcGePoint3d const &, AcGePoint3d const &, int, AcGeTol const &=AcGeContext::gTol)
int tangent(AcGePoint3d const &, AcGeImpLinearEnt3d &, AcGeTol const &=AcGeContext::gTol) const
int intersectWithLine(AcGeImpLinearEnt3d const &, int &, AcGePoint3d &, AcGePoint3d &, int &, AcGeTol const &=AcGeContext::gTol) const
virtual int area(double, double, double &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGePoint3d closestPointTo(AcGePoint3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual int isEqualTo(AcGeImpEntity3d const &, AcGeTol const &=AcGeContext::gTol) const
static ARX_API_STATIC AcGeTol gTol
Definition AcGeContext.h:24
OffsetCrvExtType
Definition AcGe.h:188
EntityId
Definition AcGe.h:84