FRX SDK Documentation 2025 SP0
Loading...
Searching...
No Matches
AcGeImpCurve3d.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
21
22template < typename Param1 > class AcArrayMemCopyReallocator;
26class AcGeImpEntity3d;
27class AcGeImpInterval;
33class AcGeImpSurface;
34class AcGePoint3d;
35class AcGeTol;
36class AcGeVector3d;
37
38class ARX_API AcGeImpCurve3d //: public AcGeEntity3dImpl
39{
40public:
45 double minimalPoint( AcGePoint3d const &,double,double, AcGeVector3d const &,double)const ;
46 int extendCurves( AcGeImpCurve3d &,double,double, AcGeVector3d const &, AcGeTol const & = AcGeContext::gTol);
47 int hasEndPoint( AcGePoint3d &)const ;
49 int intersectLocal( AcGeImpCurve3d const &,double &,double &,int, AcGePoint3d &, AcGeTol const & = AcGeContext::gTol)const ;
52 static void __cdecl deleteExternalEntity(void *);
53 virtual ~AcGeImpCurve3d(void);
54 virtual AcGeImpBoundBlock3d boundBlock(int, AcGeImpInterval const &,int)const ;
55 virtual AcGeImpBoundBlock3d boundBlock(int,int)const ;
56 virtual AcGeImpCurve3d * offsetBaseCurve(void)const ;
58 virtual AcGeImpEntity3d * project( AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeTol const & = AcGeContext::gTol)const ;
62 virtual AcGePoint3d evalPoint(double)const ;
68 virtual double distanceTo( AcGeImpCurve3d const &, AcGeTol const & = AcGeContext::gTol)const ;
69 virtual double distanceTo( AcGeImpSurface const &, AcGeTol const & = AcGeContext::gTol)const ;
70 virtual double distanceTo( AcGePoint3d const &, AcGeTol const & = AcGeContext::gTol)const ;
71 virtual double length(double,double,double)const ;
72 virtual double paramAtLength(double,double,int,double)const ;
73 virtual double paramOf( AcGePoint3d const &, AcGeTol const & = AcGeContext::gTol)const ;
74 virtual AcGe::PointContainment contains( AcGePoint3d const &,int &, AcGeTol const & = AcGeContext::gTol)const ;
75 virtual int area(double,double,double &, AcGeTol const & = AcGeContext::gTol)const ;
76 virtual int explode( AcDbVoidPtrArray &, AcGeIntArray &, AcGeImpInterval const *)const ;
79 virtual int intersectSelf( AcGeCurveIntData &, AcGeVector3d const &,double, AcGeTol const & = AcGeContext::gTol)const ;
80 virtual int intersectWith( AcGeImpCurve3d const &, AcGeVector3d const &, AcGeCurveIntData &, AcGeTol const & = AcGeContext::gTol)const ;
81 virtual int intersectWith( AcGeImpInterval const &, AcGeImpInterval const &, AcGeVector3d const &, AcGeCurveIntData &, AcGeTol const & = AcGeContext::gTol)const ;
82 virtual int isClosed( AcGeTol const & = AcGeContext::gTol)const ;
83 virtual int isCounterClock(void)const ;
84 virtual int isLinear( AcGeImpLinearEnt3d &, AcGeTol const & = AcGeContext::gTol)const ;
85 virtual int isOn( AcGePoint3d const &, AcGeTol const & = AcGeContext::gTol)const ;
86 virtual int isOn( AcGePoint3d const &,double &, AcGeTol const & = AcGeContext::gTol)const ;
87 virtual int isOn(double, AcGeTol const & = AcGeContext::gTol)const ;
88 virtual int isPlanar( AcGeImpPlanarEnt &, AcGeTol const & = AcGeContext::gTol)const ;
89 virtual int tweak(int, AcGePoint3d const &);
90 virtual int unboundedOverlap( AcGeImpCurve3d const &,int &, AcGeTol const & = AcGeContext::gTol)const ;
94 virtual void getInterval( AcGeImpInterval &, AcGePoint3d &, AcGePoint3d &)const ;
105
106protected:
109 int boundaryClosestPoints( AcGeImpCurve3d const &, AcGePoint3d &, AcGePoint3d &,double &,double &, AcGeTol const & = AcGeContext::gTol)const ;
110 int isWithinBounds( AcGeImpCurve3d const &, AcGePoint3d const &, AcGeTol const & = AcGeContext::gTol)const ;
112 virtual int isWithinBounds( AcGePoint3d const &, AcGeTol const & = AcGeContext::gTol)const ;
113 void getOverlapParams( AcGeImpCurve3d const &,int,double &,double &, AcGeTol const & = AcGeContext::gTol)const ;
115 void setPoint( AcGeImpPointOnCurve3d &,double, AcGePoint3d const &)const ;
116 void snapOverlapParam( AcGeImpCurve3d const &,double &,double,int, AcGeTol const & = AcGeContext::gTol)const ;
118 void testIntPoints( AcGeImpCurve3d const &,int &, AcGePoint3d *, AcGeTol const & = AcGeContext::gTol)const ;
119
120};
virtual void getTrimmedOffset(double, AcGeVector3d const &, AcDbVoidPtrArray &, AcGe::OffsetCrvExtType, AcGeTol const &=AcGeContext::gTol) const
static void __cdecl deleteExternalEntity(void *)
int boundaryClosestPoints(AcGeImpCurve3d const &, AcGePoint3d &, AcGePoint3d &, double &, double &, AcGeTol const &=AcGeContext::gTol) const
virtual int isPlanar(AcGeImpPlanarEnt &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGeImpBoundBlock3d boundBlock(int, int) const
virtual AcGePoint3d evalPointOnLeft(double, int, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > &) const
virtual int isCounterClock(void) const
virtual AcGeImpEntity3d * project(AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGe::PointContainment contains(AcGePoint3d const &, int &, AcGeTol const &=AcGeContext::gTol) const
virtual double distanceTo(AcGeImpSurface const &, AcGeTol const &=AcGeContext::gTol) const
virtual void getInterval(AcGeImpInterval &, AcGePoint3d &, AcGePoint3d &) const
virtual void reverseProject(AcGeImpPointOnCurve3d const &, AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
virtual int intersectWith(AcGeImpCurve3d const &, AcGeVector3d const &, AcGeCurveIntData &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGeImpEntity3d * exactOffset(double, AcGeVector3d const &, AcGeDoubleArray *, AcGeDoubleArray *, AcGe::OffsetCrvExtType, AcGeTol const &=AcGeContext::gTol) const
void getOverlapParams(AcGeImpCurve3d const &, int, double &, double &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpCurve3d(void)
int isWithinBounds(AcGeImpCurve3d const &, AcGePoint3d const &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpEntity3d * closeOffset(AcGeImpOffsetCurve3d *, AcGeDoubleArray *, AcGeDoubleArray *, AcGeTol const &=AcGeContext::gTol) const
AcGeImpCurve3d & operator=(AcGeImpCurve3d const &)
virtual int intersectWith(AcGeImpInterval const &, AcGeImpInterval const &, AcGeVector3d const &, AcGeCurveIntData &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGeImpCurve3d * offsetBaseCurve(void) const
virtual int isClosed(AcGeTol const &=AcGeContext::gTol) const
virtual int intersectSelf(AcGeCurveIntData &, AcGeVector3d const &, double, AcGeTol const &=AcGeContext::gTol) const
virtual void getProjClosestPointTo(AcGeImpCurve3d const &, AcGeVector3d const &, AcGeImpPointOnCurve3d &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
virtual ~AcGeImpCurve3d(void)
int hasStartPoint(AcGePoint3d &) const
virtual int unboundedOverlap(AcGeImpCurve3d const &, int &, AcGeTol const &=AcGeContext::gTol) const
AcGeImpEntity3d * orthoProject(AcGeImpPlanarEnt const &, AcGeTol const &=AcGeContext::gTol) const
int linkedBoundBlock(AcGeImpInterval const &, AcGeImpBoundBlock3d &) const
virtual int isWithinBounds(AcGePoint3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGePoint3d closestPointTo(AcGeImpSurface const &, AcGePoint3d &, AcGeTol const &=AcGeContext::gTol) const
AcGeEvaluatorDataCurve * curveEvalData(AcGeImpPointOnCurve3d const &) const
void setPoint(AcGeImpPointOnCurve3d &, double, AcGePoint3d const &) const
virtual int isLinear(AcGeImpLinearEnt3d &, AcGeTol const &=AcGeContext::gTol) const
virtual double paramOf(AcGePoint3d const &, AcGeTol const &=AcGeContext::gTol) const
int hasEndPoint(AcGePoint3d &) const
virtual void getProjClosestPointTo(AcGePoint3d const &, AcGeVector3d const &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGePoint3d evalPoint(double) const
void getSamplePoints(double, double, double, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > &, AcGeDoubleArray &, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > *, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > *) const
virtual void getClosestPointTo(AcGeImpSurface const &, AcGeImpPointOnCurve3d &, AcGeImpPointOnSurface &, AcGeTol const &=AcGeContext::gTol) const
virtual double paramAtLength(double, double, int, double) const
virtual void getSamplePoints(int, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > &) const
virtual int isOn(AcGePoint3d const &, double &, AcGeTol const &=AcGeContext::gTol) const
virtual int isOn(AcGePoint3d const &, AcGeTol const &=AcGeContext::gTol) const
int extendCurves(AcGeImpCurve3d &, double, double, AcGeVector3d const &, AcGeTol const &=AcGeContext::gTol)
virtual AcGePoint3d closestPointTo(AcGePoint3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual double length(double, double, double) const
virtual void getClosestPointTo(AcGeImpCurve3d const &, AcGeImpPointOnCurve3d &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
int overlap(AcGeImpCurve3d const &, AcGeCurveIntData &, AcGeTol const &=AcGeContext::gTol) const
virtual void getClosestPointTo(AcGePoint3d const &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
virtual int getNormalPoint(AcGePoint3d const &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
int isCoplanarWith(AcGeImpCurve3d const &, AcGeImpPlanarEnt &, AcGeTol const &=AcGeContext::gTol) const
virtual int area(double, double, double &, AcGeTol const &=AcGeContext::gTol) const
double minimalPoint(AcGePoint3d const &, double, double, AcGeVector3d const &, double) const
void linkBoundBlock(AcGeImpBoundBlock3d const &, AcGeImpInterval const &) const
void testIntPoints(AcGeImpCurve3d const &, int &, AcGePoint3d *, AcGePoint3d *, AcGeTol const &=AcGeContext::gTol) const
virtual int getParamsOfC1Discontinuity(AcGeDoubleArray &, AcGeTol const &=AcGeContext::gTol) const
void testIntPoints(AcGeImpCurve3d const &, int &, AcGePoint3d *, AcGeTol const &=AcGeContext::gTol) const
void getLocalClosestPoints(AcGeImpCurve3d const &, AcGeImpPointOnCurve3d &, AcGeImpPointOnCurve3d &, AcGeImpInterval const *, AcGeImpInterval const *, 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
virtual AcGePoint3d projClosestPointTo(AcGeImpCurve3d const &, AcGeVector3d const &, AcGePoint3d &, AcGeTol const &=AcGeContext::gTol) const
void reverseProject(AcGeImpCurve3d const &, AcGeImpPointOnCurve3d const &, AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
virtual int isOn(double, AcGeTol const &=AcGeContext::gTol) const
virtual AcGePoint3d evalPointOnRight(double, int, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > &) const
virtual double distanceTo(AcGePoint3d const &, AcGeTol const &=AcGeContext::gTol) const
void getLocalClosestPoints(AcGePoint3d const &, AcGeImpPointOnCurve3d &, AcGeImpInterval const *, AcGeTol const &=AcGeContext::gTol) const
virtual AcGePoint3d projClosestPointTo(AcGePoint3d const &, AcGeVector3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGePoint3d closestPointTo(AcGeImpCurve3d const &, AcGePoint3d &, AcGeTol const &=AcGeContext::gTol) const
virtual int explode(AcDbVoidPtrArray &, AcGeIntArray &, AcGeImpInterval const *) const
AcGeImpCurve3d(AcGeImpCurve3d const &)
void snapOverlapParam(AcGeImpCurve3d const &, double &, double, int, AcGeTol const &=AcGeContext::gTol) const
virtual AcGeImpBoundBlock3d boundBlock(int, AcGeImpInterval const &, int) const
virtual int tweak(int, AcGePoint3d const &)
int intersectLocal(AcGeImpCurve3d const &, double &, double &, int, AcGePoint3d &, AcGeTol const &=AcGeContext::gTol) const
virtual double distanceTo(AcGeImpCurve3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGePoint3d evalPoint(double, int, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > &) const
static ARX_API_STATIC AcGeTol gTol
Definition AcGeContext.h:24
OffsetCrvExtType
Definition AcGe.h:188
PointContainment
Definition AcGe.h:194