FRX SDK Documentation 2025 SP0
Loading...
Searching...
No Matches
AcGeImpHelix.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:
41 AcGeImpHelix( AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &,double,double,double,double,bool);
43 bool isCounterClockwise(void)const ;
46 AcGeVector3d axisVec(void)const ;
48 double endRadius(void)const ;
49 double height(void)const ;
50 double startRadius(void)const ;
51 double turnHeight(void)const ;
52 double turns(void)const ;
53 virtual ~AcGeImpHelix(void);
54 virtual AcGeImpBoundBlock3d boundBlock(int, AcGeImpInterval const &,int)const ;
57 virtual AcGeImpCurve3d & setInterval(void);
60 virtual AcGeImpEntity3d * project( AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeTol const & = AcGeContext::gTol)const ;
61 virtual AcGeImpObject * copy(void)const ;
62 virtual AcGePoint3d evalPoint(double)const ;
64 virtual double length(double,double,double)const ;
65 virtual AcGe::EntityId type(int)const ;
66 virtual int intersectSelf( AcGeCurveIntData &, AcGeVector3d const &,double, AcGeTol const & = AcGeContext::gTol)const ;
67 virtual int isDegenerate( AcGeImpEntity3d * &, AcGeTol const & = AcGeContext::gTol)const ;
68 virtual int isDegenerate( AcGe::EntityId &, AcGeTol const & = AcGeContext::gTol)const ;
69 virtual int isEqualTo( AcGeImpEntity3d const &, AcGeTol const & = AcGeContext::gTol)const ;
70 virtual int isLinear( AcGeImpLinearEnt3d &, AcGeTol const & = AcGeContext::gTol)const ;
71 virtual int isPeriodic(double &,int)const ;
72 virtual int isPlanar( AcGeImpPlanarEnt &, AcGeTol const & = AcGeContext::gTol)const ;
73 virtual int unboundedOverlap( AcGeImpCurve3d const &,int &, AcGeTol const & = AcGeContext::gTol)const ;
74 virtual void * getExternalEntity(void)const ;
76 virtual void getInterval( AcGeImpInterval &, AcGePoint3d &, AcGePoint3d &)const ;
77 virtual void getInterval( AcGeImpInterval &,int,int)const ;
80 virtual void getSplitCurves(double, AcGeImpCurve3d * &, AcGeImpCurve3d * &)const ;
83 void normalize(void);
84 void set( AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &,double,double,double,double,bool);
85 void setAxisPoint( AcGePoint3d const &);
86 void setAxisVec( AcGeVector3d const &);
87 void setEndRadius(double);
88 void setHeight(double);
90 void setStartRadius(double);
91 void setStartVec( AcGeVector3d const &);
92 void setTurns(double);
93
94private:
95 bool isUnTrimmed(void)const ;
96 double lengthIntegral(double,double,double,double,double,double)const ;
97 virtual void evaluate(int, AcGePointOnCurve3dData &,int)const ;
98
99};
void setStartVec(AcGeVector3d const &)
void setIsCounterClockwise(bool)
virtual AcGeImpObject * copy(void) const
virtual AcGeImpEntity3d & transformBy(AcGeMatrix3d const &)
virtual AcGeImpEntity3d * exactOffset(double, AcGeVector3d const &, AcGeDoubleArray *, AcGeDoubleArray *, AcGe::OffsetCrvExtType, AcGeTol const &=AcGeContext::gTol) const
virtual int isDegenerate(AcGe::EntityId &, AcGeTol const &=AcGeContext::gTol) const
void setAxisPoint(AcGePoint3d const &)
virtual AcGeImpCurve3d & reverseParam(void)
virtual AcGePoint3d evalPoint(double, int, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > &) const
virtual void getSamplePoints(int, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > &) const
double startRadius(void) const
virtual void getSplitCurves(double, AcGeImpCurve3d *&, AcGeImpCurve3d *&) const
virtual int isPeriodic(double &, int) const
virtual AcGeImpBoundBlock3d boundBlock(int, AcGeImpInterval const &, int) const
virtual void * getExternalEntity(void) const
virtual void getSamplePoints(double, double, double, AcGeImpPointOnCurve3d &, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > &, AcGeDoubleArray &, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > *, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > *) const
void setAxisVec(AcGeVector3d const &)
AcGeImpHelix(AcGeImpHelix const &)
virtual double length(double, double, double) const
AcGeVector3d axisVec(void) const
void getSamplePoints(double, double, double, AcArray< AcGePoint3d, AcArrayMemCopyReallocator< AcGePoint3d > > &, AcGeDoubleArray &, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > *, AcArray< AcGeVector3d, AcArrayMemCopyReallocator< AcGeVector3d > > *) const
bool isCounterClockwise(void) const
virtual int unboundedOverlap(AcGeImpCurve3d const &, int &, AcGeTol const &=AcGeContext::gTol) const
void set(AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &, double, double, double, double, bool)
virtual AcGeImpCurve3d & setInterval(void)
virtual int intersectSelf(AcGeCurveIntData &, AcGeVector3d const &, double, AcGeTol const &=AcGeContext::gTol) const
virtual void getInterval(AcGeImpInterval &, AcGePoint3d &, AcGePoint3d &) const
void setHeight(double)
double endRadius(void) const
double height(void) const
AcGeImpHelix(void)
void setTurns(double)
virtual int isDegenerate(AcGeImpEntity3d *&, AcGeTol const &=AcGeContext::gTol) const
void setStartRadius(double)
virtual AcGeImpEntity3d * project(AcGeImpPlanarEnt const &, AcGeVector3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual AcGeImpCurve3d & setInterval(AcGeImpInterval const &, int)
virtual AcGe::EntityId type(int) const
AcGeImpHelix & operator=(AcGeImpHelix const &)
virtual int isLinear(AcGeImpLinearEnt3d &, AcGeTol const &=AcGeContext::gTol) const
double turns(void) const
AcGeImpHelix(AcGePoint3d const &, AcGeVector3d const &, AcGeVector3d const &, double, double, double, double, bool)
virtual int isEqualTo(AcGeImpEntity3d const &, AcGeTol const &=AcGeContext::gTol) const
virtual ~AcGeImpHelix(void)
void normalize(void)
virtual int isPlanar(AcGeImpPlanarEnt &, AcGeTol const &=AcGeContext::gTol) const
void setEndRadius(double)
virtual AcGePoint3d evalPoint(double) const
virtual void getClosestPointTo(AcGePoint3d const &, AcGeImpPointOnCurve3d &, AcGeTol const &=AcGeContext::gTol) const
virtual void getTrimmedOffset(double, AcGeVector3d const &, AcDbVoidPtrArray &, AcGe::OffsetCrvExtType, AcGeTol const &=AcGeContext::gTol) const
AcGePoint3d axisPoint(void) const
AcGeVector3d startVec(void) const
double turnHeight(void) const
virtual void getInterval(AcGeImpInterval &, int, int) const
static ARX_API_STATIC AcGeTol gTol
Definition AcGeContext.h:24
OffsetCrvExtType
Definition AcGe.h:188
EntityId
Definition AcGe.h:84