CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
GeCurve3d.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24#ifndef _OD_GECURVE3D_H_
25#define _OD_GECURVE3D_H_
27#include "Ge/GeEntity3d.h"
28#include "Ge/GeDoubleArray.h"
29#include "Ge/GeVector3dArray.h"
31#include "Ge/GeIntArray.h"
32#include "Ge/GeInterval.h"
33#include "Ge/GeBoundBlock3d.h"
34class OdGeCurve2d;
35class OdGeSurface;
36class OdGePoint3d;
37class OdGePlane;
38class OdGeVector3d;
39class OdGeLinearEnt3d;
40class OdGeLine3d;
43class OdGeMatrix3d;
44class OdGePointOnCurve3dData;
45
46#include "TD_PackPush.h"
47
56{
57public:
58
69 OdGeInterval& interval) const;
70
83 OdGeInterval& interval,
84 OdGePoint3d& start,
85 OdGePoint3d& end) const;
86
105
120
139 const OdGeInterval& interval);
140
149 const OdGePoint3d& point,
150 const OdGeTol& tol = OdGeContext::gTol) const;
151
160 const OdGeCurve3d& curve,
161 const OdGeTol& tol = OdGeContext::gTol) const;
162
170 const OdGePoint3d& point,
171 const OdGeTol& tol = OdGeContext::gTol) const;
172
182 const OdGeCurve3d& curve,
183 OdGePoint3d& pntOnOtherCrv,
184 const OdGeTol& tol = OdGeContext::gTol) const;
185
202 const OdGePoint3d & point,
203 double & param,
204 const OdGeInterval* range,
205 const OdGeTol& tol = OdGeContext::gTol) const;
206
219 const OdGePoint3d& point,
220 OdGePointOnCurve3d& pntOnCrv,
221 const OdGeTol& tol = OdGeContext::gTol) const;
222
233 const OdGeCurve3d& curve,
234 OdGePointOnCurve3d& pntOnThisCrv,
235 OdGePointOnCurve3d& pntOnOtherCrv,
236 const OdGeTol& tol = OdGeContext::gTol) const;
237
247 const OdGePoint3d& point,
248 const OdGeVector3d& projectDirection,
249 const OdGeTol& tol = OdGeContext::gTol) const;
250
262 const OdGeCurve3d& curve,
263 const OdGeVector3d& projectDirection,
264 OdGePoint3d& pntOnOtherCrv,
265 const OdGeTol& tol = OdGeContext::gTol) const;
266
287 const OdGePoint3d& point,
288 const OdGeVector3d& projectDirection,
289 OdGePointOnCurve3d& pntOnCrv,
290 const OdGeTol& tol = OdGeContext::gTol) const;
291
314 const OdGeCurve3d& curve,
315 const OdGeVector3d& projectDirection,
316 OdGePointOnCurve3d& pntOnThisCrv,
317 OdGePointOnCurve3d& pntOnOtherCrv,
318 const OdGeTol& tol = OdGeContext::gTol) const;
319
339 const OdGePoint3d& point,
340 OdGePointOnCurve3d& pntOnCrv,
341 const OdGeTol& tol = OdGeContext::gTol) const;
342
350
360 const OdGeInterval& range) const;
361
369
379 const OdGeInterval& range) const;
380
400 const OdGeMatrix3d* coordSystem = NULL) const;
401
416 const OdGePlane& projectionPlane,
417 const OdGeVector3d& projectDirection,
418 const OdGeTol& tol = OdGeContext::gTol) const;
419
432 const OdGePlane& projectionPlane,
433 const OdGeTol& tol = OdGeContext::gTol) const;
434
435 //DOM-IGNORE-BEGIN
436 // Tests if point is on *curve*.
438 //DOM-IGNORE-END
439
449 bool isOn(
450 const OdGePoint3d& point,
451 double& param,
452 const OdGeTol& tol = OdGeContext::gTol) const;
453
465 bool isOn(
466 double param,
467 const OdGeTol& tol = OdGeContext::gTol) const;
468
486 double paramOf(
487 const OdGePoint3d& point,
488 const OdGeTol& tol = OdGeContext::gTol) const;
489
504 double paramOf(
505 const OdGePoint3d& point,
506 const OdGeInterval* range,
507 const OdGeTol& tol = OdGeContext::gTol) const;
508
538 double distance,
539 const OdGeVector3d& planeNormal,
540 OdGeCurve3dPtrArray& offsetCurveList,
542 const OdGeTol& tol = OdGeContext::gTol) const;
543
551 const OdGeTol& tol = OdGeContext::gTol) const;
552
565 OdGePlane& plane,
566 const OdGeTol& tol = OdGeContext::gTol) const;
567
583 OdGeLine3d& line,
584 const OdGeTol& tol = OdGeContext::gTol) const;
585
595 const OdGeCurve3d& curve,
596 OdGePlane& plane,
597 const OdGeTol& tol = OdGeContext::gTol) const;
598
605 double& period) const;
606
614 double length(
615 double fromParam,
616 double toParam,
617 double tol
618#ifndef SWIG
619 = OdGeContext::gTol.equalPoint()
620#endif
621 ) const;
622
628 double length(
629 double tol
630#ifndef SWIG
631 = OdGeContext::gTol.equalPoint()
632#endif
633 ) const;
634
645 double datumParam,
646 double length,
647 bool posParamDir
648#ifndef SWIG
649 = true
650#endif
651 , double tol
652#ifndef SWIG
653 = OdGeContext::gTol.equalPoint()
654#endif
655 ) const;
656
666 bool area(
667 double startParam,
668 double endParam,
669 double& value,
670 const OdGeTol& tol = OdGeContext::gTol) const;
671
684 OdGe::EntityId& degenerateType,
685 const OdGeTol& tol = OdGeContext::gTol) const;
686
699 OdGeEntity3d*& pConvertedEntity,
700 const OdGeTol& tol = OdGeContext::gTol) const;
701
717 double param,
718 OdGeCurve3d*& piece1,
719 OdGeCurve3d*& piece2) const;
720
732 OdGeCurve3dPtrArray& explodedCurves,
733 OdGeIntArray& newExplodedCurves,
734 const OdGeInterval* pInterval = NULL) const;
735
745 const OdGePoint3d& point,
746 OdGePointOnCurve3d& approxPntOnThisCrv,
747 const OdGeInterval* pInterval1 = NULL,
748 const OdGeTol& tol = OdGeContext::gTol) const;
749
762 const OdGeCurve3d& curve,
763 OdGePointOnCurve3d& approxPntOnThisCrv,
764 OdGePointOnCurve3d& approxPntOnOtherCrv,
765 const OdGeInterval* pInterval1 = NULL,
766 const OdGeInterval* pInterval2 = NULL,
767 const OdGeTol& tol = OdGeContext::gTol) const;
768
776 OdGePoint3d& startPoint) const;
777
785 OdGePoint3d& endPoint) const;
786
803 OdGePoint3d& point,
804 double coef = 0.5) const;
805
826 double coef = 0.5) const;
827
835 double param) const;
836
846 double param,
847 int numDeriv,
848 OdGeVector3dArray& derivatives) const;
849
862 double fromParam,
863 double toParam,
864 double approxEps,
865 OdGePoint3dArray& pointArray,
866 OdGeDoubleArray& paramArray,
867 bool forceResampling = false) const;
868
877 int numSample,
878 OdGePoint3dArray& pointArray) const;
879
889 int numSample,
890 OdGePoint3dArray& pointArray,
891 OdGeDoubleArray& paramArray) const;
892
901
903 // TD Special :
904
916 double fromParam,
917 double toParam,
918 double approxEps,
919 OdGePoint3dArray& pointArray,
920 OdGeDoubleArray* paramArray = NULL) const;
921
934 const OdGeInterval* paramInterval,
935 double approxEps,
936 OdGePoint3dArray& pointArray,
937 OdGeDoubleArray* pParamArray = NULL) const;
938
955 double fromParam,
956 double toParam,
957 double approxEps,
958 OdGePoint3dArray& pointArray,
959 OdGeDoubleArray* pParamArray = NULL) const;
960
970 int numSample,
971 OdGePoint3dArray& pointArray,
972 OdGeDoubleArray* pParamArray = NULL) const;
973
987 const OdGeInterval *paramInterval,
988 double approxEps,
989 OdGePoint3dArray& pointArray,
990 OdGeDoubleArray* pParamArray = NULL) const;
991
1005 const OdGeTol& tol = OdGeContext::gTol,
1006 bool sameParametrization = false) const;
1007//DOM-IGNORE-BEGIN
1008protected:
1011 const OdGeCurve3d& source);
1012//DOM-IGNORE-END
1013};
1014
1015#include "TD_PackPop.h"
1016
1017#endif
tol
Definition: DimVarDefs.h:2287
#define GE_TOOLKIT_EXPORT
Definition: GeExport.h:49
void getLocalClosestPoints(const OdGeCurve3d &curve, OdGePointOnCurve3d &approxPntOnThisCrv, OdGePointOnCurve3d &approxPntOnOtherCrv, const OdGeInterval *pInterval1=NULL, const OdGeInterval *pInterval2=NULL, const OdGeTol &tol=OdGeContext::gTol) const
void getSplitCurves(double param, OdGeCurve3d *&piece1, OdGeCurve3d *&piece2) const
void getInterval(OdGeInterval &interval, OdGePoint3d &start, OdGePoint3d &end) const
void getClosestPointTo(const OdGeCurve3d &curve, OdGePointOnCurve3d &pntOnThisCrv, OdGePointOnCurve3d &pntOnOtherCrv, const OdGeTol &tol=OdGeContext::gTol) const
OdGePoint3d midPoint(double coef=0.5) const
bool hasStartPoint(OdGePoint3d &startPoint) const
bool isPlanar(OdGePlane &plane, const OdGeTol &tol=OdGeContext::gTol) const
bool isOn(double param, const OdGeTol &tol=OdGeContext::gTol) const
bool isDegenerate(OdGeEntity3d *&pConvertedEntity, const OdGeTol &tol=OdGeContext::gTol) const
double length(double fromParam, double toParam, double tol=OdGeContext::gTol.equalPoint()) const
OdGeEntity3d * orthoProject(const OdGePlane &projectionPlane, const OdGeTol &tol=OdGeContext::gTol) const
void getLocalClosestPoints(const OdGePoint3d &point, OdGePointOnCurve3d &approxPntOnThisCrv, const OdGeInterval *pInterval1=NULL, const OdGeTol &tol=OdGeContext::gTol) const
OdGePoint3d projClosestPointTo(const OdGeCurve3d &curve, const OdGeVector3d &projectDirection, OdGePoint3d &pntOnOtherCrv, const OdGeTol &tol=OdGeContext::gTol) const
bool isCoplanarWith(const OdGeCurve3d &curve, OdGePlane &plane, const OdGeTol &tol=OdGeContext::gTol) const
bool isOn(const OdGePoint3d &point, double &param, const OdGeTol &tol=OdGeContext::gTol) const
void appendSamplePoints(double fromParam, double toParam, double approxEps, OdGePoint3dArray &pointArray, OdGeDoubleArray *pParamArray=NULL) const
OdGeBoundBlock3d boundBlock() const
bool hasEndPoint(OdGePoint3d &endPoint) const
void getSamplePoints(double fromParam, double toParam, double approxEps, OdGePoint3dArray &pointArray, OdGeDoubleArray &paramArray, bool forceResampling=false) const
OdGeEntity3d * project(const OdGePlane &projectionPlane, const OdGeVector3d &projectDirection, const OdGeTol &tol=OdGeContext::gTol) const
void getInterval(OdGeInterval &interval) const
OdGeBoundBlock3d boundBlock(const OdGeInterval &range) const
OdGeExtents3d getGeomExtents(const OdGeInterval &range=OdGeInterval(), const OdGeMatrix3d *coordSystem=NULL) const
void appendSamplePoints(int numSample, OdGePoint3dArray &pointArray, OdGeDoubleArray *pParamArray=NULL) const
OdGePoint3d projClosestPointTo(const OdGePoint3d &point, const OdGeVector3d &projectDirection, const OdGeTol &tol=OdGeContext::gTol) const
bool isPeriodic(double &period) const
void getSamplePoints(int numSample, OdGePoint3dArray &pointArray) const
void getSamplePoints(int numSample, OdGePoint3dArray &pointArray, OdGeDoubleArray &paramArray) const
OdGePoint3d evalPoint(double param) const
void getSamplePoints(double fromParam, double toParam, double approxEps, OdGePoint3dArray &pointArray, OdGeDoubleArray *paramArray=NULL) const
bool getNormalPoint(const OdGePoint3d &point, OdGePointOnCurve3d &pntOnCrv, const OdGeTol &tol=OdGeContext::gTol) const
OdGePoint3d closestPointTo(const OdGePoint3d &point, double &param, const OdGeInterval *range, const OdGeTol &tol=OdGeContext::gTol) const
double distanceTo(const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
OdGeBoundBlock3d orthoBoundBlock(const OdGeInterval &range) const
OdGeBoundBlock3d orthoBoundBlock() const
OdGePoint3d closestPointTo(const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
OdGeCurve3d & setInterval()
double distanceTo(const OdGeCurve3d &curve, const OdGeTol &tol=OdGeContext::gTol) const
bool isDegenerate(OdGe::EntityId &degenerateType, const OdGeTol &tol=OdGeContext::gTol) const
bool isClosed(const OdGeTol &tol=OdGeContext::gTol) const
void appendSamplePoints(const OdGeInterval *paramInterval, double approxEps, OdGePoint3dArray &pointArray, OdGeDoubleArray *pParamArray=NULL) const
TD_USING(OdGeEntity3d::isOn)
OdGeCurve3d & reverseParam()
double paramAtLength(double datumParam, double length, bool posParamDir=true, double tol=OdGeContext::gTol.equalPoint()) const
void getClosestPointTo(const OdGePoint3d &point, OdGePointOnCurve3d &pntOnCrv, const OdGeTol &tol=OdGeContext::gTol) const
void getProjClosestPointTo(const OdGeCurve3d &curve, const OdGeVector3d &projectDirection, OdGePointOnCurve3d &pntOnThisCrv, OdGePointOnCurve3d &pntOnOtherCrv, const OdGeTol &tol=OdGeContext::gTol) const
bool hasMidPoint(OdGePoint3d &point, double coef=0.5) const
void getProjClosestPointTo(const OdGePoint3d &point, const OdGeVector3d &projectDirection, OdGePointOnCurve3d &pntOnCrv, const OdGeTol &tol=OdGeContext::gTol) const
bool area(double startParam, double endParam, double &value, const OdGeTol &tol=OdGeContext::gTol) const
void getSamplePoints(const OdGeInterval *paramInterval, double approxEps, OdGePoint3dArray &pointArray, OdGeDoubleArray *pParamArray=NULL) const
bool setInterval(const OdGeInterval &interval)
OdGePoint3d evalPoint(double param, int numDeriv, OdGeVector3dArray &derivatives) const
double length(double tol=OdGeContext::gTol.equalPoint()) const
bool explode(OdGeCurve3dPtrArray &explodedCurves, OdGeIntArray &newExplodedCurves, const OdGeInterval *pInterval=NULL) const
bool isLinear(OdGeLine3d &line, const OdGeTol &tol=OdGeContext::gTol) const
OdGeCurve2d * convertTo2d(const OdGeTol &tol=OdGeContext::gTol, bool sameParametrization=false) const
OdGeCurve3d(const OdGeCurve3d &source)
void getTrimmedOffset(double distance, const OdGeVector3d &planeNormal, OdGeCurve3dPtrArray &offsetCurveList, OdGe::OffsetCrvExtType extensionType=OdGe::kFillet, const OdGeTol &tol=OdGeContext::gTol) const
OdGePoint3d closestPointTo(const OdGeCurve3d &curve, OdGePoint3d &pntOnOtherCrv, const OdGeTol &tol=OdGeContext::gTol) const
double paramOf(const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
double paramOf(const OdGePoint3d &point, const OdGeInterval *range, const OdGeTol &tol=OdGeContext::gTol) const
OdGeEntity3d & operator=(const OdGeEntity3d &entity)
bool isOn(const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
Definition: GeTol.h:49
GLsizei GLsizei GLchar * source
Definition: gles2_ext.h:282
GLuint GLsizei GLsizei * length
Definition: gles2_ext.h:274
GLenum GLint * range
Definition: gles2_ext.h:563
GLsizei const GLfloat * value
Definition: gles2_ext.h:302
static GE_STATIC_EXPORT OdGeTol gTol
Definition: GeGbl.h:65
EntityId
Definition: Ge.h:62
OffsetCrvExtType
Definition: Ge.h:316
@ kFillet
Definition: Ge.h:318