CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
GeNurbSurface.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_GENURBSF_H
25#define OD_GENURBSF_H
27#include "Ge/GeSurface.h"
28#include "Ge/GeKnotVector.h"
29#include "Ge/GeEllipCylinder.h"
30#include "Ge/GeEllipCone.h"
31#include "OdPlatformSettings.h"
32#include "TD_PackPush.h"
33
34class OdGeNurbCurve3d;
35
39static const int derivArraySize = 3;
43typedef OdGeVector3d VectorDerivArray[derivArraySize][derivArraySize];
44
45
57{
58public:
59
60
65
86 int degreeInU,
87 int degreeInV,
88 int propsInU,
89 int propsInV,
90 int numControlPointsInU,
91 int numControlPointsInV,
92 const OdGePoint3dArray& controlPoints,
93 const OdGeDoubleArray& weights,
94 const OdGeKnotVector& uKnots,
95 const OdGeKnotVector& vKnots,
97
104 const OdGeNurbSurface& source);
105
112
119
129 const OdGeNurbSurface& nurb);
130
131
141 bool isRationalInU() const;
142
155 bool isPeriodicInU(double& period) const;
156
166 bool isRationalInV() const;
167
180 bool isPeriodicInV(double& period) const;
181
188 int singularityInU() const;
189
196 int singularityInV() const;
197
207 int degreeInU() const;
208
216
226 int degreeInV() const;
227
235
245 OdGePoint3dArray& controlPoints) const;
246
261 OdGeDoubleArray& weights) const;
262
269 int numKnotsInU() const;
270
283 OdGeKnotVector& uKnots) const;
284
291 int numKnotsInV() const;
292
305 OdGeKnotVector& vKnots) const;
306
325 int& degreeInU,
326 int& degreeInV,
327 int& propsInU,
328 int& propsInV,
329 int& numControlPointsInU,
330 int& numControlPointsInV,
331 OdGePoint3dArray& controlPoints,
332 OdGeDoubleArray& weights,
333 OdGeKnotVector& uKnots,
334 OdGeKnotVector& vKnots) const;
335
359 int degreeInU,
360 int degreeInV,
361 int propsInU,
362 int propsInV,
363 int numControlPointsInU,
364 int numControlPointsInV,
365 const OdGePoint3dArray& controlPoints,
366 const OdGeDoubleArray& weights,
367 const OdGeKnotVector& uKnots,
368 const OdGeKnotVector& vKnots,
369 const OdGeTol& tol = OdGeContext::gTol);
370
386 const OdGePoint3dArray& fitPoints,
387 const OdGeVector3dArray& arrTangentsInU,
388 const OdGeVector3dArray& arrTangentsInV,
389 const OdGeVector3dArray& arrMixedDerivs,
390 const OdGeKnotVector& uKnots,
391 const OdGeKnotVector& vKnots,
392 const OdGeTol& tol);
394 // TD Special :
395
396 // computes isolines
397
405 double V,
406 OdGeNurbCurve3d& isoline) const;
407
415 double U,
416 OdGeNurbCurve3d& isoline) const;
417
435 const OdGePoint3d& point,
436 const OdGeTol& tol = OdGeContext::gTol) const;
437
452 const OdGePoint2d& param,
453 OdUInt32 numDeriv,
454 VectorDerivArray derivatives) const;
455
456 // the index in "m_controlPoints" of control *point* (i,j):
457
458//DOM-IGNORE-BEGIN
468 int loc(
469 int i,
470 int j) const;
471//DOM-IGNORE-END
488 static OdGeNurbSurface* convertFrom(const OdGeSurface* source, const OdGeUvBox& domain, const OdGeTol& tol = OdGeContext::gTol, bool sameParametrization = false);
489
505 static OdGeNurbSurface* convertFrom(const OdGeSurface* source, const OdGeTol& tol = OdGeContext::gTol, bool sameParametrization = false);
506
514 {
516 kLowerU = 1,
517
519 kUpperU = 2,
520
522 kLowerV = 3,
523
525 kUpperV = 4
526 };
527
543 ConnectionSide thisConnectionSide,
544 ConnectionSide surfaceConnectionSide,
545 const OdGeTol& tol = OdGeContext::gTol);
546
556 OdGeNurbSurface& elevateDegree(bool iByU, int iPlusDegree);
557
571 OdGeNurbSurface& insertKnot(bool iByU, double iNewKnot, int iTimes = 1);
572
579 double knotAt(bool iByU, int iKnotIndex) const;
580
587 OdGePoint3d controlPointAt(int iIdxU, int iIdxV) const;
588
599 OdGeNurbSurface& setControlPointAt(int iIdxU, int iIdxV, const OdGePoint3d& iPoint);
600};
601
602GE_TOOLKIT_EXPORT OdGeNurbSurface* convertFrom( const OdGeSurface* source, const OdGeTol& tol = OdGeContext::gTol, bool sameParametrization = false );
603
604#include "TD_PackPop.h"
605
606#endif // OD_GENURBSF_H
tol
Definition: DimVarDefs.h:2287
#define GE_TOOLKIT_EXPORT
Definition: GeExport.h:49
OdGeVector3d VectorDerivArray[derivArraySize][derivArraySize]
Definition: GeNurbSurface.h:43
GE_TOOLKIT_EXPORT OdGeNurbSurface * convertFrom(const OdGeSurface *source, const OdGeTol &tol=OdGeContext::gTol, bool sameParametrization=false)
unsigned int OdUInt32
OdGeNurbSurface(const OdGeNurbSurface &source)
OdGeNurbSurface(const OdGeEllipCone &cone)
OdGeNurbSurface & setControlPointAt(int iIdxU, int iIdxV, const OdGePoint3d &iPoint)
OdGeNurbSurface & insertKnot(bool iByU, double iNewKnot, int iTimes=1)
bool getWeights(OdGeDoubleArray &weights) const
OdGePoint3d controlPointAt(int iIdxU, int iIdxV) const
void getDefinition(int &degreeInU, int &degreeInV, int &propsInU, int &propsInV, int &numControlPointsInU, int &numControlPointsInV, OdGePoint3dArray &controlPoints, OdGeDoubleArray &weights, OdGeKnotVector &uKnots, OdGeKnotVector &vKnots) const
bool isPeriodicInU(double &period) const
int numControlPointsInU() const
void getControlPoints(OdGePoint3dArray &controlPoints) const
int degreeInU() const
OdGeNurbSurface & set(int degreeInU, int degreeInV, int propsInU, int propsInV, int numControlPointsInU, int numControlPointsInV, const OdGePoint3dArray &controlPoints, const OdGeDoubleArray &weights, const OdGeKnotVector &uKnots, const OdGeKnotVector &vKnots, const OdGeTol &tol=OdGeContext::gTol)
static OdGeNurbSurface * convertFrom(const OdGeSurface *source, const OdGeTol &tol=OdGeContext::gTol, bool sameParametrization=false)
int singularityInV() const
int degreeInV() const
void computeUIsoLine(double U, OdGeNurbCurve3d &isoline) const
OdGeNurbSurface & joinWith(const OdGeNurbSurface &surface, ConnectionSide thisConnectionSide, ConnectionSide surfaceConnectionSide, const OdGeTol &tol=OdGeContext::gTol)
void getUKnots(OdGeKnotVector &uKnots) const
void computeVIsoLine(double V, OdGeNurbCurve3d &isoline) const
OdGeNurbSurface(int degreeInU, int degreeInV, int propsInU, int propsInV, int numControlPointsInU, int numControlPointsInV, const OdGePoint3dArray &controlPoints, const OdGeDoubleArray &weights, const OdGeKnotVector &uKnots, const OdGeKnotVector &vKnots, const OdGeTol &tol=OdGeContext::gTol)
OdGeNurbSurface & elevateDegree(bool iByU, int iPlusDegree)
OdGeNurbSurface(const OdGeEllipCylinder &cylinder)
int singularityInU() const
int numControlPointsInV() const
static OdGeNurbSurface * convertFrom(const OdGeSurface *source, const OdGeUvBox &domain, const OdGeTol &tol=OdGeContext::gTol, bool sameParametrization=false)
void getVKnots(OdGeKnotVector &vKnots) const
bool isRationalInV() const
double knotAt(bool iByU, int iKnotIndex) const
int numKnotsInV() const
int numKnotsInU() const
OdGeNurbSurface & setFitData(const OdGePoint3dArray &fitPoints, const OdGeVector3dArray &arrTangentsInU, const OdGeVector3dArray &arrTangentsInV, const OdGeVector3dArray &arrMixedDerivs, const OdGeKnotVector &uKnots, const OdGeKnotVector &vKnots, const OdGeTol &tol)
bool isRationalInU() const
bool isPeriodicInV(double &period) const
bool getDerivativesAt(const OdGePoint2d &param, OdUInt32 numDeriv, VectorDerivArray derivatives) const
int loc(int i, int j) const
OdGePoint2d paramOfPrec(const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
OdGeSurface & operator=(const OdGeSurface &surf)
Definition: GeTol.h:49
GLsizei GLsizei GLchar * source
Definition: gles2_ext.h:282
static GE_STATIC_EXPORT OdGeTol gTol
Definition: GeGbl.h:65