CFx SDK Documentation  2023 SP0
GeSurface.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2017, 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 Teigha(R) software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Teigha(R) Copyright (C) 2002-2017 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_GESURF_H
25 #define OD_GESURF_H
27 #include "Ge/GeEntity3d.h"
28 #include "Ge/GeVector3dArray.h"
29 #include "Ge/GePoint2d.h"
30 #include "Ge/GeUvBox.h"
31 #include "Ge/GeExtents3d.h"
32 #include "Ge/GeDoubleArray.h"
33 
34 class OdGePoint2d;
35 class OdGeCurve3d;
36 class OdGePointOnCurve3d;
37 class OdGePointOnSurface;
38 class OdGePointOnSurfaceData;
39 class OdGeInterval;
40 
41 #include "TD_PackPush.h"
42 
51 {
52 public:
53 
54 
71  const OdGePoint3d& point,
72  const OdGeTol& tol = OdGeContext::gTol) const;
73 
80  bool isOn(
81  const OdGePoint3d& point,
82  OdGePoint2d& paramPoint,
83  const OdGeTol& tol = OdGeContext::gTol) const;
84 
92  const OdGePoint3d& point,
93  const OdGeTol& tol = OdGeContext::gTol) const;
94 
106  const OdGePoint3d& point,
107  OdGePointOnSurface& pntOnSurface,
108  const OdGeTol& tol = OdGeContext::gTol) const;
109 
119  double distanceTo(
120  const OdGePoint3d& point,
121  const OdGeTol& tol = OdGeContext::gTol) const;
122 
127  bool isNormalReversed() const;
128 
133 
145  OdGeInterval& intrvlU,
146  OdGeInterval& intrvlV) const;
147 
157  const OdGeTol& tol = OdGeContext::gTol) const;
158 
168  const OdGeTol& tol = OdGeContext::gTol) const;
169 
183  const OdGePoint2d& param) const;
184 
200  const OdGePoint2d& param,
201  int numDeriv,
202  OdGeVector3dArray& derivatives) const;
203 
220  const OdGePoint2d& param,
221  int numDeriv,
222  OdGeVector3dArray& derivatives,
223  OdGeVector3d& normal) const;
224 
226  const OdGeSurface& surf);
227 
229  // TD Special :
230 
239  bool project(const OdGePoint3d& p, OdGePoint3d& projP, const OdGeTol& tol = OdGeContext::gTol) const;
240 
252  bool& swapUV,
253  double& uCoeffA,
254  double& vCoeffA,
255  double& uCoeffB,
256  double& vCoeffB) const;
257 
268  bool swapUV = false,
269  double uCoeffA = 1.,
270  double vCoeffA = 1.,
271  double uCoeffB = 0.,
272  double vCoeffB = 0.);
273 
284  OdGeInterval& implicitIntrvlU,
285  OdGeInterval& implicitIntrvlV) const;
286 
298  const OdGeInterval& realIntrvlU,
299  const OdGeInterval& realIntrvlV);
300 
301  //FELIX_CHANGE_BEGIN
302 
313  OdGeUvBox& uvbox) const;
314 
330  void evaluate(
331  const OdGePoint2d& param,
332  int numDeriv, OdGeVector3d* values,
333  OdGeVector3d* normal = NULL) const;
334 
336  const OdGeUvBox& range = OdGeUvBox(),
337  const OdGeMatrix3d* coordSystem = NULL) const;
338 
340  const OdGePoint3d& point,
341  const OdGeUvBox* uvBox,
342  const OdGeTol& tol = OdGeContext::gTol) const;
343 
345  bool byU,
346  double param) const;
347 
349  bool byU,
350  double param,
351  const OdGeInterval & interval) const;
352 
353  bool getPoles(
354  OdGeDoubleArray *uParams,
355  OdGeDoubleArray *vParams,
356  OdGePoint3dArray *uPoints,
357  OdGePoint3dArray *vPoints,
358  double tol = 1e-13) const;
359  //FELIX_CHANGE_END
360 
361 protected:
364  const OdGeSurface& surf);
365 
366 };
367 
368 #include "TD_PackPop.h"
369 
370 #endif // OD_GESURF_H
371 
tol
Definition: DimVarDefs.h:2287
#define GE_TOOLKIT_EXPORT
Definition: GeExport.h:49
#define NULL
Definition: GsProperties.h:177
bool isOn(const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
void getImplicitEnvelope(OdGeInterval &implicitIntrvlU, OdGeInterval &implicitIntrvlV) const
OdGePoint2d paramOf(const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
bool getPoles(OdGeDoubleArray *uParams, OdGeDoubleArray *vParams, OdGePoint3dArray *uPoints, OdGePoint3dArray *vPoints, double tol=1e-13) const
void setReparameterization(bool swapUV=false, double uCoeffA=1., double vCoeffA=1., double uCoeffB=0., double vCoeffB=0.)
bool getReparameterization(bool &swapUV, double &uCoeffA, double &vCoeffA, double &uCoeffB, double &vCoeffB) const
bool isClosedInV(const OdGeTol &tol=OdGeContext::gTol) const
double distanceTo(const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
bool project(const OdGePoint3d &p, OdGePoint3d &projP, const OdGeTol &tol=OdGeContext::gTol) const
bool setEnvelope(const OdGeInterval &realIntrvlU, const OdGeInterval &realIntrvlV)
void evaluate(const OdGePoint2d &param, int numDeriv, OdGeVector3d *values, OdGeVector3d *normal=NULL) const
OdGePoint3d closestPointTo(const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
OdGeExtents3d getGeomExtents(const OdGeUvBox &range=OdGeUvBox(), const OdGeMatrix3d *coordSystem=NULL) const
void getEnvelope(OdGeInterval &intrvlU, OdGeInterval &intrvlV) const
bool isNormalReversed() const
TD_USING(OdGeEntity3d::isOn)
OdGePoint3d evalPoint(const OdGePoint2d &param, int numDeriv, OdGeVector3dArray &derivatives, OdGeVector3d &normal) const
OdGeSurface & operator=(const OdGeSurface &surf)
OdGePoint3d evalPoint(const OdGePoint2d &param) const
void getClosestPointTo(const OdGePoint3d &point, OdGePointOnSurface &pntOnSurface, const OdGeTol &tol=OdGeContext::gTol) const
OdGePoint3d evalPoint(const OdGePoint2d &param, int numDeriv, OdGeVector3dArray &derivatives) const
bool isClosedInU(const OdGeTol &tol=OdGeContext::gTol) const
OdGeSurface & reverseNormal()
OdGeCurve3d * makeIsoparamCurve(bool byU, double param, const OdGeInterval &interval) const
bool isOn(const OdGePoint3d &point, OdGePoint2d &paramPoint, const OdGeTol &tol=OdGeContext::gTol) const
void getEnvelope(OdGeUvBox &uvbox) const
OdGePoint2d paramOf(const OdGePoint3d &point, const OdGeUvBox *uvBox, const OdGeTol &tol=OdGeContext::gTol) const
OdGeCurve3d * makeIsoparamCurve(bool byU, double param) const
OdGeSurface(const OdGeSurface &surf)
Definition: GeTol.h:49
GLenum GLint * range
Definition: gles2_ext.h:563
static GE_STATIC_EXPORT OdGeTol gTol
Definition: GeGbl.h:60