DATAKIT API  V2025.2
util_geom_dtk.hpp
Go to the documentation of this file.
1 #ifndef _UTIL_GEOM_DTK_HPP_
2 #define _UTIL_GEOM_DTK_HPP_
3 
6 #include <vector>
7 
8 #include <assert.h>
9 class Dtk_2dpnt;
10 
11 
12 /*************************************** POINTS **********************************/
13 
20 class Dtk_Point : public Dtk_Entity
21 {
22 protected:
23  struct Dtk_Handle; // Not defined here
24  Dtk_Handle *_Private; // Handle
25  enum { _typeID = DTK_TYPE_POINT };
27  Dtk_Point(const Dtk_Point& s);
28  virtual ~Dtk_Point();
29  inline virtual Dtk_Object* Clone() { return new Dtk_Point(*this); }
30 
31 private:
32  void _Init();
33  void _Copy(const Dtk_Point& s);
34  void _Reset();
35  friend class Dtk_SmartPtr<Dtk_Point>;
36 public:
38  Dtk_Point(const Dtk_pnt& pt);
39 
41  int DtkDynamicType(const int& inId);
42  static Dtk_Point * DtkDynamicCast(Dtk_Object * inObject);
43 
44 
46  static Dtk_PointPtr Create(const Dtk_Point& inToCopy);
47  static Dtk_PointPtr Create(const Dtk_pnt& inToCopy);
48  static Dtk_PointPtr Create(const Dtk_Double64 & inX, const Dtk_Double64 & inY, const Dtk_Double64 & inZ);
49 
50  //methods
54 
59 
61  virtual Dtk_ErrorStatus _Store(void*);
62  virtual Dtk_Size_t GetSize() const;
63 };
64 
65 /*************************************** CURVES **********************************/
66 
86 
87 class Dtk_Curve : public Dtk_Entity
88 {
89 protected:
90  struct Dtk_Handle; // Not defined here
91  Dtk_Handle *_Private; // Handle
92  enum { _typeID = DTK_TYPE_CURVE };
94  Dtk_Curve(const Dtk_Curve& s);
95  virtual Dtk_Object* Clone() = 0;
96 
97 private:
98  void _Init();
99  void _Reset();
100  friend class Dtk_SmartPtr<Dtk_Curve>;
101 
102 protected:
103  void _Copy(const Dtk_Curve& s);
104 
105 public:
106  virtual ~Dtk_Curve();
108  int DtkDynamicType(const int& inId);
109  static Dtk_Curve * DtkDynamicCast(Dtk_Object * inObject);
110 
111  //methods
113  void SetTrimPoints(const Dtk_pnt& inStartPoint,const Dtk_pnt& inEndPoint);
123  void SetDimension(const Dtk_Size_t& inDimension);
125  virtual Dtk_ErrorStatus SetTrimmingParameters(const Dtk_Double64& inUmin,const Dtk_Double64& inUmax);
136  virtual Dtk_bool IsPeriodic() const;
140  Dtk_NurbsCurvePtr ComputeOffset(Dtk_Double64 inOffset, Dtk_dir inOffsetDirection);
141 
142  //virtual methods
144  virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax,Dtk_bool inMorePrecise = 0);
146  virtual Dtk_ErrorStatus ComputeOrientedBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax, const Dtk_transfo& inLocal);
148  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const = 0;
152  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const =0 ;
154  virtual Dtk_NurbsCurvePtr ToNurbs()const =0 ;
156  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const =0 ;
158  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const =0 ;
160  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
162  virtual Dtk_ErrorStatus ComputeUPointDir(const Dtk_Double64& inU,Dtk_pnt& outPoint,Dtk_dir& outDir)const ;
164  virtual Dtk_pnt ComputeStartPoint()const =0 ;
166  virtual Dtk_pnt ComputeEndPoint()const =0 ;
168  virtual void Reverse()=0 ;
170  virtual void Normalize();
171 
174  // \brief To Dump Curve
175  virtual Dtk_ErrorStatus _Store(void*);
176  friend void PDtk_StoreDataCurve(void*,Dtk_CurvePtr&);
177  virtual Dtk_Size_t GetSize() const;
179 
180  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
181 };
182 
189 class Dtk_NurbsCurve : public Dtk_Curve
190 {
191 protected:
192  struct Dtk_Handle; // Not defined here
193  Dtk_Handle *_Private; // Handle
197  virtual ~Dtk_NurbsCurve();
198  Dtk_NurbsCurve(const Dtk_UInt32& inDegree,const Dtk_tab<Dtk_pnt> &inControlPoints);
199  Dtk_NurbsCurve(const Dtk_UInt32& inDegree,const Dtk_tab<Dtk_Double64> &inKnots,const Dtk_tab<Dtk_pnt> &inControlPoints,const Dtk_tab<Dtk_Double64> &inWeights=Dtk_tab<Dtk_Double64>());
200  Dtk_NurbsCurve(const Dtk_UInt32& inDegree,const Dtk_tab<Dtk_Double64>& inKnotsValues,const Dtk_tab<Dtk_UChar8>& inKnotsMultiplicities,const Dtk_tab<Dtk_pnt> &inControlPoints,const Dtk_tab<Dtk_Double64> &inWeights=Dtk_tab<Dtk_Double64>());
201  Dtk_NurbsCurve(const Dtk_tab<Dtk_CurvePtr> &inCurvesToMerge, Dtk_Double64 stichtol /*= DTK_TOLERANCE*/, Dtk_bool LengthParameter /* DTK_FALSE*/ );
202  inline virtual Dtk_Object* Clone() { return new Dtk_NurbsCurve(*this); }
203 private:
204  Dtk_ErrorStatus _ComputeUPointDirClamp(const Dtk_Double64& inUparameter,Dtk_pnt& outPoint,Dtk_dir& outDir)const;
205  void _SetNodalVector(const Dtk_tab<Dtk_Double64>& inKnotsVector);
206  void _SetNodalVector(const Dtk_Double64 * inNodalVector,const Dtk_Size_t &inSize);
207  void _AddKnot(const Dtk_UInt32& inKnotMultiplicity,const Dtk_Double64& inKnotValue);
208  void _SetPointsArray(const Dtk_tab<Dtk_pnt> &inPointArray);
209  void _SetPointsArray(Dtk_pnt *inPoints,const Dtk_Size_t &inSize);
210  void _SetWeight(const Dtk_Size_t& inIndex,Dtk_Double64 inWeight) ;
211  void _SetWeightsArray(const Dtk_tab<Dtk_Double64>& inWeightArray) ;
212  void _SetWeightsArray(Dtk_Double64 * inWeights,const Dtk_Size_t &inSize) ;
213  void _Init();
214  void _Copy(const Dtk_NurbsCurve& s);
215  void _Reset();
216  friend class Dtk_SmartPtr<Dtk_NurbsCurve>;
217 public:
218  Dtk_ErrorStatus _KnotInsertion(const Dtk_Double64 &inUparameter,const Dtk_Size_t &inOccurence,Dtk_Double64 inTolerance=DTK_TOLERANCE);
219  Dtk_ErrorStatus _DegreeElevation(const Dtk_Size_t &inDegreeElevation);
220  int _KnotRemoval(const Dtk_Double64 &inU,const int &inNum,const Dtk_Double64 &inTolerance);
221 
222  //downcasting
223  int DtkDynamicType(const int& inId);
225 
226  //constructors
229  static Dtk_NurbsCurvePtr Create(const Dtk_UInt32& inDegree,const Dtk_tab<Dtk_Double64> &inKnots,const Dtk_tab<Dtk_pnt> &inControlPoints,const Dtk_tab<Dtk_Double64> &inWeights=Dtk_tab<Dtk_Double64>());
230  static Dtk_NurbsCurvePtr Create(const Dtk_UInt32& inDegree,const Dtk_tab<Dtk_Double64> &inKnotsValues,const Dtk_tab<Dtk_UChar8> &inKnotsMultiplicities,
231  const Dtk_tab<Dtk_pnt> &inControlPoints,const Dtk_tab<Dtk_Double64> &inWeights=Dtk_tab<Dtk_Double64>());
232  //static Dtk_NurbsCurvePtr Create(const Dtk_UInt32& inDegree,const Dtk_tab<Dtk_pnt> &inControlPoints);
233  static Dtk_NurbsCurvePtr Create(const Dtk_NurbsCurvePtr& s,const Dtk_tab<Dtk_Double64>& inKnotsValues,const Dtk_tab<Dtk_UChar8>& inKnotsMultiplicities);
234  static Dtk_NurbsCurvePtr Create(const Dtk_tab<Dtk_CurvePtr> &inCurvesToMerge, Dtk_Double64 stichtol = DTK_TOLERANCE, Dtk_bool LengthParameter = DTK_FALSE );
235 
236 
237  //methods
243  Dtk_Double64 GetKnotValue(const Dtk_Size_t& inIndex) const;
249  Dtk_ErrorStatus Reparam(const Dtk_Double64 &inUmin,const Dtk_Double64 &inUmax);
251  const Dtk_pnt& Point(const Dtk_Size_t& inIndex) const;
252  Dtk_pnt& Point(const Dtk_Size_t& inIndex);
254  Dtk_Double64 GetWeight(const Dtk_Size_t& inIndex) const;
255 
263  Dtk_bool IsLine() const;
267  virtual Dtk_bool IsPeriodic() const;
268 
270  void SetIsPeriodic(const Dtk_bool &inIsPeriodic);
272  void SetIsClosed(const Dtk_bool &inIsClosed);
275 
276  Dtk_ErrorStatus ComputeUPointDir(const Dtk_Double64& inUparameter,Dtk_pnt& outPoint,Dtk_dir& outDir)const;
277  Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax, Dtk_bool inMorePrecise = 0);
278 
280  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const;
281 
283  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
285  virtual Dtk_NurbsCurvePtr ToNurbs()const ;
287  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
289  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
291  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outParameter)const;
293  virtual Dtk_pnt ComputeStartPoint() const;
295  virtual Dtk_pnt ComputeEndPoint() const;
297  virtual void Reverse();
298 
300 
301 
306  void SetTypeBeforeConversion(const type_detk& inType);
308 
309  // \brief To Dump Curve
310  virtual Dtk_ErrorStatus _Store(void*);
311  virtual Dtk_Size_t GetSize() const;
312 
319  Dtk_ErrorStatus _ComputeAnyDerivativeExtended(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
325  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
326  Dtk_Double64 _ComputeWeight(Dtk_Double64 inUvalue, int exttype) const;
327 
329 };
330 
337 class Dtk_Polyline : public Dtk_Curve
338 {
339 protected:
341  struct Dtk_Handle;
343  Dtk_Handle *_Private;
349  Dtk_Polyline(const Dtk_Polyline& inPolylineToCopy);
351  Dtk_Polyline(const Dtk_tab<Dtk_pnt> &inPoints );
353  Dtk_Polyline(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
354  inline virtual Dtk_Object* Clone() { return new Dtk_Polyline(*this); }
356  virtual ~Dtk_Polyline();
357 private:
359  void _Init();
361  void _Copy(const Dtk_Polyline& inPolylineToCopy);
363  void _Reset();
365  friend class Dtk_SmartPtr<Dtk_Polyline>;
366 public:
367 
368  //downcasting
369  int DtkDynamicType(const int& inId);
370  static Dtk_Polyline * DtkDynamicCast(Dtk_Object * inObjectToCast);
371 
373  static Dtk_PolylinePtr Create(const Dtk_Polyline& inPolylineToCopy);
374  static Dtk_PolylinePtr Create(const Dtk_tab<Dtk_pnt> &inPoints);
375  static Dtk_PolylinePtr Create(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
376 
377  //methods
379  Dtk_bool IsLine() const;
383  void AddPoint(const Dtk_pnt& inNewPoint);
384  void AddPoint(const Dtk_Double64& inX,const Dtk_Double64& inY,const Dtk_Double64& inZ=0.0);
385 
387  const Dtk_pnt& Point(const Dtk_Size_t& inIndex) const;
388  Dtk_pnt& Point(const Dtk_Size_t& inIndex);
389 
390  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
391  virtual Dtk_NurbsCurvePtr ToNurbs()const ;
393  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const;
394  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
396  virtual Dtk_pnt ComputeStartPoint() const;
397  virtual Dtk_pnt ComputeEndPoint() const;
398  virtual void Reverse();
399  Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax, Dtk_bool inMorePrecise = 0);
400  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff,Dtk_dir &outdir,int exttype) const;
401 
402 
404  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const;
405 
409 
410  virtual Dtk_ErrorStatus _Store(void*);
411  virtual Dtk_Size_t GetSize() const;
412 };
413 
422 class Dtk_Line : public Dtk_Curve
423 {
424 protected:
426  struct Dtk_Handle;
428  Dtk_Handle *_Private;
430  enum { _typeID = DTK_TYPE_LINE };
434  Dtk_Line(const Dtk_Line& inLineToCopy);
436  Dtk_Line(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection);
438  Dtk_Line(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
439  inline virtual Dtk_Object* Clone() { return new Dtk_Line(*this); }
441  virtual ~Dtk_Line();
442 private:
444  void _Init();
446  void _Copy(const Dtk_Line& inLineToCopy);
448  void _Reset();
450  friend class Dtk_SmartPtr<Dtk_Line>;
451 public:
452 
453  //downcasting
454  int DtkDynamicType(const int& inId);
455  static Dtk_Line * DtkDynamicCast(Dtk_Object * inObjectToCast);
456 
458  static Dtk_LinePtr Create(const Dtk_Line& inLineToCopy);
459  static Dtk_LinePtr Create(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
460  static Dtk_LinePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection);
461 
462  //methods
467 
468  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
469  virtual Dtk_NurbsCurvePtr ToNurbs()const ;
471  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const;
472  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
474  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
475  virtual Dtk_pnt ComputeStartPoint() const;
476  virtual Dtk_pnt ComputeEndPoint() const;
477  virtual void Reverse();
478  virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax,Dtk_bool inMorePrecise = 0);
479 
480 
482  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const;
483 
487  virtual void Normalize();
488 
490 
491  virtual Dtk_ErrorStatus _Store(void*);
492  virtual Dtk_Size_t GetSize() const;
493  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
494 };
495 
496 
503 class Dtk_Conic : public Dtk_Curve
504 {
505 protected:
506  struct Dtk_Handle; // Not defined here
507  Dtk_Handle *_Private; // Handle
508  enum { _typeID = DTK_TYPE_CONIC };
510  Dtk_Conic(const Dtk_Conic& inConicToCopy);
511 // Dtk_Conic(const Dtk_Double64& inA,const Dtk_Double64& inB,const Dtk_Double64& inC,const Dtk_Double64& inD,const Dtk_Double64& inE,const Dtk_Double64& inF);
512 // Dtk_Conic(const Dtk_Double64& inA,const Dtk_Double64& inB,const Dtk_Double64& inC,const Dtk_Double64& inD,const Dtk_Double64& inE,const Dtk_Double64& inF,
513 // const Dtk_pnt &inCenter, const Dtk_dir &inUOrigin, const Dtk_dir &inNormal);
514  virtual Dtk_Object* Clone() = 0;
515  virtual ~Dtk_Conic();
516 private:
517  void _Init();
518  void _Copy(const Dtk_Conic& inConicToCopy);
519  void _Reset();
520  Dtk_ErrorStatus _SetCenterPoint(const Dtk_pnt& inCenterPoint);
521  Dtk_ErrorStatus _SetCenterPoint(const Dtk_Double64& inXCenterPoint,const Dtk_Double64& inYCenterPoint,const Dtk_Double64& inZCenterPoint);
522  Dtk_ErrorStatus _SetNormalDirection(const Dtk_dir& inNormalDirection);
523  Dtk_ErrorStatus _SetOriginDirection(const Dtk_dir& inOriginDirection);
524 
525  friend class Dtk_SmartPtr<Dtk_Conic>;
526 public:
527 
528  //downcasting
529  int DtkDynamicType(const int& inId);
530  static Dtk_Conic * DtkDynamicCast(Dtk_Object * inObject);
531 
532  //constructors
533  static Dtk_ConicPtr Create(const Dtk_Conic& inConicToCopy);
534 // static Dtk_ConicPtr Create(const Dtk_Double64& inA,const Dtk_Double64& inB,const Dtk_Double64& inC,const Dtk_Double64& inD,const Dtk_Double64& inE,const Dtk_Double64& inF);
535 // static Dtk_ConicPtr Create(const Dtk_Double64& inA,const Dtk_Double64& inB,const Dtk_Double64& inC,const Dtk_Double64& inD,const Dtk_Double64& inE,const Dtk_Double64& inF,
536 // const Dtk_pnt &inCenter, const Dtk_dir &inUOrigin, const Dtk_dir &inNormal);
537 
538  //methods
540  const Dtk_pnt& GetCenterPoint() const;
541 
543  const Dtk_dir& GetNormalDirection() const;
544  const Dtk_dir& GetZDirection() const;
545 
547  const Dtk_dir& GetOriginDirection() const;
548  const Dtk_dir& GetXDirection() const;
549 
552 
554  virtual Dtk_NurbsCurvePtr ToNurbs()const;
555 
557 
561 
562  virtual Dtk_ErrorStatus _Store(void*);
563  virtual Dtk_Size_t GetSize() const;
564 };
565 
574 class Dtk_Ellipse : public Dtk_Conic
575 {
576 protected:
577  struct Dtk_Handle; // Not defined here
578  Dtk_Handle *_Private; // Handle
581  Dtk_Ellipse(const Dtk_Ellipse& inEllipseToCopy);
582  Dtk_Ellipse(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius);
583  inline virtual Dtk_Object* Clone() { return new Dtk_Ellipse(*this); }
584  virtual ~Dtk_Ellipse();
585 private:
586  void _Init();
587  void _Copy(const Dtk_Ellipse& inEllipseToCopy);
588  void _Reset();
589  Dtk_ErrorStatus _SetRadius(const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius);
590  Dtk_ErrorStatus _SetRadius(const Dtk_Double64& inRadius);
591  friend class Dtk_SmartPtr<Dtk_Ellipse>;
592 public:
593 
594  //downcasting
595  int DtkDynamicType(const int& inId);
596  static Dtk_Ellipse * DtkDynamicCast(Dtk_Object * inObject);
597 
598  //constructors
599  static Dtk_EllipsePtr Create(const Dtk_Ellipse& inEllipseToCopy);
600  static Dtk_EllipsePtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius);
601  static Dtk_EllipsePtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inRadius);
602 
603  //methods
607 
608 
611  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
612  // virtual Dtk_NurbsCurvePtr ToNurbs()const ;
613  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
615  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
617  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const ;
619  virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax,Dtk_bool inMorePrecise = 0);
620 
621 
622  virtual Dtk_pnt ComputeStartPoint() const;
623  virtual Dtk_pnt ComputeEndPoint() const;
624  virtual void Reverse();
625 
626 
627 
631 
632  virtual Dtk_ErrorStatus _Store(void*);
633  virtual Dtk_Size_t GetSize() const;
634  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
635 };
636 
637 class Dtk_Parabola : public Dtk_Conic
638 {
639 protected:
640  struct Dtk_Handle; // Not defined here
641  Dtk_Handle *_Private; // Handle
644  Dtk_Parabola(const Dtk_Parabola& inToCopy);
645  Dtk_Parabola(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inMajorRadius);
646  inline virtual Dtk_Object* Clone() { return new Dtk_Parabola(*this); }
647  virtual ~Dtk_Parabola();
648 private:
649  void _Init();
650  void _Copy(const Dtk_Parabola& inToCopy);
651  void _Reset();
652  Dtk_ErrorStatus _SetFocal(const Dtk_Double64& inFocal);
653  friend class Dtk_SmartPtr<Dtk_Parabola>;
654 public:
655 
656  //downcasting
657  int DtkDynamicType(const int& inId);
658  static Dtk_Parabola * DtkDynamicCast(Dtk_Object * inObject);
659 
660  //constructors
661  static Dtk_ParabolaPtr Create(const Dtk_Parabola& inToCopy);
662  static Dtk_ParabolaPtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inFocal);
663 
664  //methods
666 
667 
670  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
671  //virtual Dtk_NurbsCurvePtr ToNurbs()const ;
672  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
674  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const;
675  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff,Dtk_dir &outdir,int exttype) const;
676 
677  virtual Dtk_pnt ComputeStartPoint() const;
678  virtual Dtk_pnt ComputeEndPoint() const;
679  virtual void Reverse();
680 
681 
682 
686  virtual Dtk_ErrorStatus _Store(void*);
687  virtual Dtk_Size_t GetSize() const;
688 };
689 
690 class Dtk_Hyperbola : public Dtk_Conic
691 {
692 protected:
693  struct Dtk_Handle; // Not defined here
694  Dtk_Handle *_Private; // Handle
697  Dtk_Hyperbola(const Dtk_Hyperbola& inToCopy);
698  Dtk_Hyperbola(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inSemiAxis,const Dtk_Double64& inSemiImageAxis);
699  inline virtual Dtk_Object* Clone() { return new Dtk_Hyperbola(*this); }
700  virtual ~Dtk_Hyperbola();
701 private:
702  void _Init();
703  void _Copy(const Dtk_Hyperbola& inToCopy);
704  void _Reset();
705  friend class Dtk_SmartPtr<Dtk_Hyperbola>;
706 public:
707 
708  //downcasting
709  int DtkDynamicType(const int& inId);
711 
712  //constructors
713  static Dtk_HyperbolaPtr Create(const Dtk_Hyperbola& inToCopy);
714  static Dtk_HyperbolaPtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inSemiAxis,const Dtk_Double64& inSemiImageAxis);
715 
716  //methods
719 
720 
723  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
724  //virtual Dtk_NurbsCurvePtr ToNurbs()const ;
725  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
727  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const ;
728  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff,Dtk_dir &outdir,int exttype) const;
729 
730  virtual Dtk_pnt ComputeStartPoint() const;
731  virtual Dtk_pnt ComputeEndPoint() const;
732  virtual void Reverse();
733 
735 
739 
740  virtual Dtk_ErrorStatus _Store(void*);
741  virtual Dtk_Size_t GetSize() const;
742 };
743 
744 /*************************************** END CURVES **********************************/
745 /*************************************** SURFACES **********************************/
755 
756 class Dtk_Surface : public Dtk_Entity
757 {
758 protected:
759  struct Dtk_Handle; // Not defined here
760  Dtk_Handle *_Private; // Handle
764  virtual Dtk_Object* Clone() = 0;
765  virtual ~Dtk_Surface();
766 private:
767  void _Init();
768  void _Copy(const Dtk_Surface& s);
769  void _Reset();
770  friend class Dtk_SmartPtr<Dtk_Surface>;
771 public:
772 
773  //downcasting
774  int DtkDynamicType(const int& inId);
776 
777  //constructors
780 
782  Dtk_ErrorStatus GetTrimUVBox(Dtk_Double64 outTrimValues[]) const;
784  virtual Dtk_ErrorStatus SetTrimUVBox(Dtk_Double64 inTrimValues[]);
786  //virtual Dtk_ErrorStatus SetDomain(Dtk_Double64 inDomain[]);
787 
791  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
793  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const = 0;
795  Dtk_ErrorStatus ComputeUVto3DFirstDerivative( const Dtk_Double64& inUValue, const Dtk_Double64& inVValue, const Dtk_dir& inUVFirstDerivative, Dtk_dir &out3DFirstDerivative ) const;
797  Dtk_ErrorStatus ComputeUVto3DSecondDerivative( const Dtk_Double64& inUValue, const Dtk_Double64& inVValue, const Dtk_dir& inUVFirstDerivative, const Dtk_dir& inUVSecondDerivative, Dtk_dir &out3DSecondDerivative ) const;
799  virtual Dtk_bool IsUPeriodic() const;
801  virtual Dtk_bool IsVPeriodic() const;
804 
805  //virtual methods
807  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL)const =0;
808  virtual Dtk_Size_t GetSize() const;
809  virtual Dtk_ErrorStatus _Store(void*);
811  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const=0;
813 
814  //Internal use only
817 
818  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int extendtype) const;
819  virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int extendtype) const;
820 };
821 
829 {
830 protected:
831  struct Dtk_Handle; // Not defined here
832  Dtk_Handle *_Private; // Handle
835  Dtk_NurbsSurface(const Dtk_NurbsSurface& inSurfaceToCopy);
836  Dtk_NurbsSurface(const Dtk_UInt32& inUDegree,const Dtk_UInt32& inVDegree,const Dtk_tab<Dtk_Double64> &inUKnots,const Dtk_tab<Dtk_Double64> &inVKnots,const Dtk_tab<Dtk_pnt> &inControlPoints,
838  Dtk_NurbsSurface(const Dtk_UInt32& inUDegree,const Dtk_UInt32& inVDegree,const Dtk_tab<Dtk_Double64> &inUKnotsValues,const Dtk_tab<Dtk_Double64> &inVKnotsValues,
839  const Dtk_tab<Dtk_UChar8> &inUKnotsMultiplicities,const Dtk_tab<Dtk_UChar8> &inVKnotsMultiplicities,const Dtk_tab<Dtk_tab<Dtk_pnt> > &inControlPoints,
841  Dtk_NurbsSurface(const Dtk_tab<Dtk_SurfacePtr> &inSurfacesToMerge, Dtk_Double64 stichtol /*= DTK_TOLERANCE */ );
842 
843  inline virtual Dtk_Object* Clone() { return new Dtk_NurbsSurface(*this); }
844  virtual ~Dtk_NurbsSurface();
845 private:
846  void _SetPointsArray(const Dtk_tab< Dtk_tab<Dtk_pnt> > &inPoints);
847  void _SetPointsArray(Dtk_pnt **inPoints,const Dtk_Size_t &inUSize,const Dtk_Size_t &inVSize);
848  void _SetWeightsArray(const Dtk_tab< Dtk_tab<Dtk_Double64> > &inWeights) ;
849  void _SetWeightsArray(Dtk_Double64 ** inWeights,const Dtk_Size_t &inUSize,const Dtk_Size_t &inVSize) ;
850  void _SetNodalVectorU(const Dtk_tab<Dtk_Double64> &inNodalVector);
851  void _SetNodalVectorU(const Dtk_Double64 * inNodalVector,const Dtk_Size_t &inSize);
852  void _SetNodalVectorV(const Dtk_tab<Dtk_Double64> &inNodalVector);
853  void _SetNodalVectorV(const Dtk_Double64 * inNodalVector,const Dtk_Size_t &inSize);
854  /*void _AddUKnotValue(const Dtk_UInt32& inKnotMultiplicity,const Dtk_Double64& inKnotValue);
855  void _AddVKnotValue(const Dtk_UInt32& inKnotMultiplicity,const Dtk_Double64& inKnotValue);*/
856 
857  Dtk_ErrorStatus _ComputeAnyDerivative_exotic(const Dtk_Double64 &inUvalue, const Dtk_Double64 &inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
858  Dtk_ErrorStatus _ComputeMultipleDerivative_exotic(const Dtk_Double64 &inUalue, const Dtk_Double64 &inValue, int ndu,int ndv,int nduvmax,Dtk_dir* outdirs,int exttype) const;
859 
860  Dtk_ErrorStatus _ReduceDegree( const Dtk_UInt32& inTargetUDegree, const Dtk_UInt32& inTargetVDegree );
861 
862  inline Dtk_Double64*Pdtk_unpacknodal( int unbk, int cnbk, Dtk_UChar8* multi, Dtk_Double64* compknots ) const;
863 
864  void _Init();
865  void _Copy(const Dtk_NurbsSurface& s);
866  void _Reset();
867  friend class Dtk_SmartPtr<Dtk_NurbsSurface>;
868 
869  virtual Dtk_ErrorStatus _ComputeAnyDerivativeExtended(Dtk_Double64 inUalue, Dtk_Double64 inValue, int ndu,int ndv,Dtk_dir &outdir,int exttype) const;
870  virtual Dtk_ErrorStatus _ComputeMultipleDerivativeExtended(Dtk_Double64 inUalue, Dtk_Double64 inValue, int ndu,int ndv,int nduvmax,Dtk_dir* outdirs,int exttype) const;
871 public:
872  Dtk_ErrorStatus _KnotInsertion(const Dtk_Double64 &inParameter,const Dtk_Size_t &inOccurence,const Dtk_bool &inUSplit,Dtk_Double64 inTolerance=DTK_TOLERANCE);
873  int _KnotRemoval(const Dtk_Double64 &inParameter,const int &inOccurence,const Dtk_bool &inUSplit,const Dtk_Double64 &inTolerance);
874 
875  //downcasting
876  int DtkDynamicType(const int& inId);
878 
879  //constructors
881  static Dtk_NurbsSurfacePtr Create(const Dtk_UInt32& inUDegree,const Dtk_UInt32& inVDegree,const Dtk_tab<Dtk_Double64> &inUKnots,
882  const Dtk_tab<Dtk_Double64> &inVKnots,const Dtk_tab<Dtk_pnt> &inControlPoints,const Dtk_tab<Dtk_Double64> &inWeights=Dtk_tab<Dtk_Double64>(),type_detk inSurfaceType = DTK_TYPE_NURBS_SURFACE);
883  static Dtk_NurbsSurfacePtr Create(const Dtk_UInt32& inUDegree,const Dtk_UInt32& inVDegree,const Dtk_tab<Dtk_Double64> &inUKnotsValues,
884  const Dtk_tab<Dtk_Double64> &inVKnotsValues,const Dtk_tab<Dtk_UChar8> &inUKnotsMultiplicities,const Dtk_tab<Dtk_UChar8> &inVKnotsMultiplicities,const Dtk_tab<Dtk_tab<Dtk_pnt> > &inControlPoints,
885  const Dtk_tab<Dtk_tab<Dtk_Double64> > &inWeights=Dtk_tab<Dtk_tab<Dtk_Double64> >(),type_detk inSurfaceType = DTK_TYPE_NURBS_SURFACE, const Dtk_UInt32& inTargetUDegree = 0, const Dtk_UInt32& inTargetVDegree = 0 );
886  static Dtk_NurbsSurfacePtr Create(const Dtk_tab<Dtk_SurfacePtr> &inSurfacesToMerge, Dtk_Double64 stichtol = DTK_TOLERANCE );
887 
888 
889  //methods
894  Dtk_Double64 GetUKnotValue(const Dtk_Size_t& inIndex) const;
896  Dtk_Double64 GetVKnotValue(const Dtk_Size_t& inIndex ) const;
900 
901  const Dtk_pnt& Point(const Dtk_Size_t& inUIndex , const Dtk_Size_t& inVIndex) const;
902  Dtk_pnt& Point(const Dtk_Size_t& inUIndex , const Dtk_Size_t& inVIndex);
903  Dtk_Double64 GetWeight(const Dtk_Size_t& inUIndex , const Dtk_Size_t& inVIndex) const;
907  Dtk_bool IsPlane() const;
908 
910  virtual Dtk_bool IsUPeriodic() const;
912  virtual Dtk_bool IsVPeriodic() const;
913 
914  void SetIsUPeriodic(Dtk_bool inPeriodicFlag);
915  void SetIsVPeriodic(Dtk_bool inPeriodicFlag);
917 
918 
919 
921  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
922 
923  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
924  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
925  virtual Dtk_ErrorStatus ComputeUDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const;
926  virtual Dtk_ErrorStatus ComputeVDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const;
927  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
928  virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
929  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
930  virtual Dtk_ErrorStatus Reparam(Dtk_Double64 inDomain[]);
934  virtual Dtk_Size_t GetSize() const;
935  virtual Dtk_ErrorStatus _Store(void*);
936 
937  Dtk_ErrorStatus SplitAt(const Dtk_Double64 &inParameter,const Dtk_bool &inUSplit,const Dtk_bool &inKeepLeft,Dtk_NurbsSurfacePtr &outOtherPart,Dtk_Double64 inTolerance=DTK_TOLERANCE);
939  Dtk_NurbsSurfacePtr ForceG1Continuity (Dtk_Double64 tolerance_to_remove = 0.0005) const;
940 
943 };
944 
955 {
956 protected:
957  struct Dtk_Handle; // Not defined here
958  Dtk_Handle *_Private; // Handle
962  Dtk_PlaneSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal,const Dtk_dir& inUDirection,const Dtk_dir& inVDirection);
963  inline virtual Dtk_Object* Clone() { return new Dtk_PlaneSurface(*this); }
964 
965  virtual ~Dtk_PlaneSurface();
966 private:
967  void _Init();
968  void _Copy(const Dtk_PlaneSurface& s);
969  void _Reset();
970  friend class Dtk_SmartPtr<Dtk_PlaneSurface>;
971 public:
972 
973  //downcasting
974  int DtkDynamicType(const int& inId);
976 
977  //constructors
984  static Dtk_PlaneSurfacePtr Create(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal,const Dtk_dir& inUDirection,const Dtk_dir& inVDirection=Dtk_dir());
985  static Dtk_PlaneSurfacePtr Create(const Dtk_PlaneSurface& inPlaneToCopy);
986 
987  //methods
988 
996 
998  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
999  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1000  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1001  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1002  virtual Dtk_Size_t GetSize() const;
1003  virtual Dtk_ErrorStatus _Store(void*);
1007 
1008  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1009 };
1010 
1020 {
1021 protected:
1022  struct Dtk_Handle; // Not defined here
1023  Dtk_Handle *_Private; // Handle
1027  Dtk_RevolutionSurface(const Dtk_CurvePtr& inRevolvedCurve,const Dtk_pnt& inAxisposition,const Dtk_dir& inRevolutionAxis,const Dtk_dir& inUDirection,const Dtk_dir&inYDir);
1028  inline virtual Dtk_Object* Clone() { return new Dtk_RevolutionSurface(*this); }
1030 private:
1031  void _Init();
1032  void _Copy(const Dtk_RevolutionSurface& s);
1033  void _Reset();
1034  friend class Dtk_SmartPtr<Dtk_RevolutionSurface>;
1035 public:
1036 
1037  //downcasting
1038  int DtkDynamicType(const int& inId);
1040 
1041  //constructors
1050  //SetAsDeprecated("Undefined", "Use Dtk_StandardRevolutionSurfacePtr")
1051  static Dtk_RevolutionSurfacePtr Create(const Dtk_CurvePtr& inRevolvedCurve,const Dtk_pnt& inAxisposition,const Dtk_dir& inRevolutionAxis,const Dtk_dir& inUDirection,const Dtk_dir&inYDir= Dtk_dir());
1053 
1054  //methods
1060  const Dtk_dir& GetRevolutionAxis() const;
1063  const Dtk_pnt& GetAxisPosition() const;
1066  const Dtk_dir& GetXDirection()const;
1072  const Dtk_dir& GetZDirection()const;
1076 
1077  // Obsolete Function
1079 
1081  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1082  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1083  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1084  //virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1085  virtual Dtk_Size_t GetSize() const;
1086  virtual Dtk_ErrorStatus _Store(void*);
1091 
1092  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1093  virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1094 };
1095 
1106 {
1107 protected:
1108  struct Dtk_Handle; // Not defined here
1109  Dtk_Handle *_Private; // Handle
1113  Dtk_StandardRevolutionSurface(const Dtk_CurvePtr& inRevolvedCurve,const Dtk_pnt& inAxisposition,const Dtk_dir& inRevolutionAxis,const Dtk_dir& inVDirection,const Dtk_dir&inYDir);
1114  inline virtual Dtk_Object* Clone() { return new Dtk_StandardRevolutionSurface(*this); }
1116 private:
1117  void _Init();
1118  void _Copy(const Dtk_StandardRevolutionSurface& s);
1119  void _Reset();
1121 public:
1122 
1123  //downcasting
1124  int DtkDynamicType(const int& inId);
1126 
1127  //constructors
1135  static Dtk_StandardRevolutionSurfacePtr Create(const Dtk_CurvePtr& inRevolvedCurve,const Dtk_pnt& inAxisposition,const Dtk_dir& inRevolutionAxis,const Dtk_dir& inVDirection,const Dtk_dir&inYDir= Dtk_dir());
1137 
1138  //methods
1144  const Dtk_dir& GetRevolutionAxis() const;
1147  const Dtk_pnt& GetAxisPosition() const;
1150  const Dtk_dir& GetXDirection()const;
1156  const Dtk_dir& GetZDirection()const;
1160 
1161  // Obsolete Function
1163 
1165  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1166  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1167  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1168  //virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1169  virtual Dtk_Size_t GetSize() const;
1170  virtual Dtk_ErrorStatus _Store(void*);
1175 
1176  virtual Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1177  virtual Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1178 };
1179 
1180 
1191 {
1192 protected:
1193  struct Dtk_Handle; // Not defined here
1194  Dtk_Handle *_Private; // Handle
1198  Dtk_LinearExtrusionSurface(const Dtk_CurvePtr& inExtrudedCurve,const Dtk_dir& inExtrusionAxis);
1199  inline virtual Dtk_Object* Clone() { return new Dtk_LinearExtrusionSurface(*this); }
1200 
1202 private:
1203  void _Init();
1204  void _Copy(const Dtk_LinearExtrusionSurface& s);
1205  void _Reset();
1207 public:
1208 
1209  //downcasting
1210  int DtkDynamicType(const int& inId);
1212 
1213  //constructors
1218  static Dtk_LinearExtrusionSurfacePtr Create(const Dtk_CurvePtr& inExtrudedCurve,const Dtk_dir& inExtrusionAxis);
1220 
1221  //methods
1223  const Dtk_dir& GetExtrusionAxis() const;
1224 
1226  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1227  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1228  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1229  //virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1230  virtual Dtk_Size_t GetSize() const;
1231  virtual Dtk_ErrorStatus _Store(void*);
1235  virtual Dtk_bool IsUPeriodic() const;
1236  virtual Dtk_bool IsVPeriodic() const;
1237 
1238  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1239 };
1240 
1248 
1250 {
1251 protected:
1252  struct Dtk_Handle; // Not defined here
1253  Dtk_Handle *_Private; // Handle
1257  Dtk_RuledSurface(const Dtk_CurvePtr& inFirstCurve,const Dtk_CurvePtr& inSecondCurve);
1258  inline virtual Dtk_Object* Clone() { return new Dtk_RuledSurface(*this); }
1259 
1261 private:
1262  void _Init();
1263  void _Copy(const Dtk_RuledSurface& s);
1264  void _Reset();
1265  friend class Dtk_SmartPtr<Dtk_RuledSurface>;
1266 public:
1267 
1268  //downcasting
1269  int DtkDynamicType(const int& inId);
1271 
1272  //constructors
1277  static Dtk_RuledSurfacePtr Create(const Dtk_CurvePtr& inFirstCurve,const Dtk_CurvePtr& inSecondCurve);
1278  static Dtk_RuledSurfacePtr Create(const Dtk_RuledSurface& inSurfToCopy);
1279 
1280  //methods
1283 
1285  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1286  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1287  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1288  virtual Dtk_Size_t GetSize() const;
1289  virtual Dtk_ErrorStatus _Store(void*);
1292 
1293  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1294  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1295 };
1296 
1307 {
1308 protected:
1309  struct Dtk_Handle; // Not defined here
1310  Dtk_Handle *_Private; // Handle
1314  Dtk_CylindricalSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inUDirection, const Dtk_dir& inYDirection, const Dtk_Double64& inRadius);
1315  inline virtual Dtk_Object* Clone() { return new Dtk_CylindricalSurface(*this); }
1317 private:
1318  void _Init();
1319  void _Copy(const Dtk_CylindricalSurface& s);
1320  void _Reset();
1321  friend class Dtk_SmartPtr<Dtk_CylindricalSurface>;
1322 public:
1323 
1324  //downcasting
1325  int DtkDynamicType(const int& inId);
1327 
1328  //constructors
1336  static Dtk_CylindricalSurfacePtr Create(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inUDirection,const Dtk_Double64& inRadius, const Dtk_dir& inYDirection=Dtk_dir());
1338 
1339  //methods
1343  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1344  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1345  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1346  virtual Dtk_Size_t GetSize() const;
1347  virtual Dtk_ErrorStatus _Store(void*);
1350 
1351  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1352  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1353 };
1354 
1355 
1366 {
1367 protected:
1368  struct Dtk_Handle; // Not defined here
1369  Dtk_Handle *_Private; // Handle
1373  Dtk_ConicalSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inYDirection, const Dtk_dir& inUDirection,const Dtk_Double64& inRadius,const Dtk_Double64& inAngle);
1374  inline virtual Dtk_Object* Clone() { return new Dtk_ConicalSurface(*this); }
1375 
1377 private:
1378  void _Init();
1379  void _Copy(const Dtk_ConicalSurface& s);
1380  void _Reset();
1381  friend class Dtk_SmartPtr<Dtk_ConicalSurface>;
1382 public:
1383 
1384  //downcasting
1385  int DtkDynamicType(const int& inId);
1387 
1388  //constructors
1397  static Dtk_ConicalSurfacePtr Create(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inUDirection,const Dtk_Double64& inFirstRadius,const Dtk_Double64& inAngle, const Dtk_dir& inYDir=Dtk_dir());
1398  static Dtk_ConicalSurfacePtr Create(const Dtk_ConicalSurface& inSurfToCopy);
1399 
1400  //methods
1403 
1404 
1406  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1407  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1408  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1409  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1410  virtual Dtk_Size_t GetSize() const;
1411  virtual Dtk_ErrorStatus _Store(void*);
1414 };
1425 {
1426 protected:
1427  struct Dtk_Handle; // Not defined here
1428  Dtk_Handle *_Private; // Handle
1432  Dtk_ToroidalSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal,const Dtk_dir& inYDir, const Dtk_dir& inUDirection,const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius);
1433  inline virtual Dtk_Object* Clone() { return new Dtk_ToroidalSurface(*this); }
1434 
1436 private:
1437  void _Init();
1438  void _Copy(const Dtk_ToroidalSurface& s);
1439  void _Reset();
1440  friend class Dtk_SmartPtr<Dtk_ToroidalSurface>;
1441 public:
1442 
1443  //downcasting
1444  int DtkDynamicType(const int& inId);
1446 
1447  //constructors
1456  static Dtk_ToroidalSurfacePtr Create(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inUDirection,const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius, const Dtk_dir& inYDir=Dtk_dir());
1458 
1459  //methods
1462 
1464  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1465  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1466  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1467  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1468  virtual Dtk_Size_t GetSize() const;
1469  virtual Dtk_ErrorStatus _Store(void*);
1472  virtual Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1473  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1474  virtual Dtk_bool IsUPeriodic() const;
1475  virtual Dtk_bool IsVPeriodic() const;
1476 };
1477 
1488 {
1489 protected:
1490  struct Dtk_Handle; // Not defined here
1491  Dtk_Handle *_Private; // Handle
1495  Dtk_SphericalSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inYDir, const Dtk_dir& inUDirection,const Dtk_Double64& inRadius);
1496  inline virtual Dtk_Object* Clone() { return new Dtk_SphericalSurface(*this); }
1497 
1499 private:
1500  void _Init();
1501  void _Copy(const Dtk_SphericalSurface& s);
1502  void _Reset();
1503  friend class Dtk_SmartPtr<Dtk_SphericalSurface>;
1504 public:
1505 
1506  //downcasting
1507  int DtkDynamicType(const int& inId);
1509 
1510  //constructors
1518  static Dtk_SphericalSurfacePtr Create(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inUDirection,const Dtk_Double64& inRadius, const Dtk_dir& inYDir=Dtk_dir());
1520 
1521  //methods
1523 
1525  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1526  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1527  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1528  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1529  virtual Dtk_Size_t GetSize() const ;
1530  virtual Dtk_ErrorStatus _Store(void*);
1533 
1534  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1535  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1536  //Dtk_ErrorStatus SetDomain(Dtk_Double64 inDomain[]);
1538  virtual Dtk_bool IsUPeriodic() const;
1540  virtual Dtk_bool IsVPeriodic() const;
1541 };
1542 
1553 {
1554 protected:
1555  struct Dtk_Handle; // Not defined here
1556  Dtk_Handle *_Private; // Handle
1560  Dtk_OffsetSurface(const Dtk_SurfacePtr &inSurf, const Dtk_Double64& inOffset);
1561  inline virtual Dtk_Object* Clone() { return new Dtk_OffsetSurface(*this); }
1563 private:
1564  void _Init();
1565  void _Copy(const Dtk_OffsetSurface& s);
1566  void _Reset();
1567  friend class Dtk_SmartPtr<Dtk_OffsetSurface>;
1568 public:
1569 
1570  //downcasting
1571  int DtkDynamicType(const int& inId);
1573 
1574  //constructors
1579  static Dtk_OffsetSurfacePtr Create(const Dtk_SurfacePtr &inSurf, const Dtk_Double64& inOffset);
1580  static Dtk_OffsetSurfacePtr Create(const Dtk_OffsetSurface& inSurfToCopy);
1581 
1582  //methods
1585 
1587  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1588  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1589  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1590  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1591  virtual Dtk_Size_t GetSize() const;
1592  virtual Dtk_ErrorStatus _Store(void*);
1595  virtual void PrepareTransfo ();
1596 
1599 
1600  virtual Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1601  virtual Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1602  Dtk_ErrorStatus _ComputeMultipleDerivative_withbasis(const Dtk_Double64 &inUvalue, const Dtk_Double64 &inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,Dtk_dir* outdirsbasis,int exttype) const;
1603 };
1604 
1606 {
1607 protected:
1608  struct Dtk_Handle; // Not defined here
1609  Dtk_Handle *_Private; // Handle
1613  Dtk_FilletSurface(const Dtk_CurvePtr &inSpine, const Dtk_Double64& inAngle1, const Dtk_Double64& inAngle2,const Dtk_Double64& inConstantRadius,const Dtk_tab<Dtk_CurvePtr> &inAdjacentCurve,
1614  const Dtk_tab<Dtk_SurfacePtr> &inAdjacentSurface, const Dtk_tab<Dtk_Double64 >& inSpineParam,
1615  const Dtk_tab<Dtk_Double64 > &inKnots,const Dtk_Double64& inRadius1,const Dtk_Double64& inRadius2,const Dtk_NurbsSurfacePtr &inCorrespondingNurbs = NULL);
1616  inline virtual Dtk_Object* Clone() { return new Dtk_FilletSurface(*this); }
1617 
1619 private:
1620  void _Init();
1621  void _Copy(const Dtk_FilletSurface& s);
1622  void _Reset();
1623  friend class Dtk_SmartPtr<Dtk_FilletSurface>;
1624 public:
1625 
1626  //downcasting
1627  int DtkDynamicType(const int& inId);
1629 
1630  //constructors
1631  static Dtk_FilletSurfacePtr Create(const Dtk_CurvePtr &inSpine, const Dtk_Double64& inAngle1, const Dtk_Double64& inAngle2, const Dtk_tab<Dtk_CurvePtr> &inAdjacentCurve,
1632  const Dtk_tab<Dtk_SurfacePtr> &inAdjacentSurface, const Dtk_tab<Dtk_Double64 > &inSpineParam=Dtk_tab<Dtk_Double64>(), const Dtk_tab<Dtk_Double64 > &inKnots=Dtk_tab<Dtk_Double64>(),
1633  const Dtk_Double64& inConstantRadius=-1.0,const Dtk_NurbsSurfacePtr &inCorrespondingNurbs = NULL);
1634  static Dtk_FilletSurfacePtr Create(const Dtk_FilletSurface& inSurfToCopy);
1635 
1636  //methods
1645 
1648 
1650  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1651  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1652  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1653  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1654  virtual Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir* outdirs, int extendtype ) const;
1655  virtual Dtk_Size_t GetSize() const;
1656  virtual Dtk_ErrorStatus _Store(void*);
1659 };
1660 
1670 {
1671 protected:
1672  struct Dtk_Handle; // Not defined here
1673  Dtk_Handle *_Private; // Handle
1677  Dtk_TransformedSurface(const Dtk_SurfacePtr &inSurf, const Dtk_transfo& inTransformation);
1678  inline virtual Dtk_Object* Clone() { return new Dtk_TransformedSurface(*this); }
1680 private:
1681  void _Init();
1682  void _Copy(const Dtk_TransformedSurface& s);
1683  void _Reset();
1684  friend class Dtk_SmartPtr<Dtk_TransformedSurface>;
1685 public:
1686 
1687  //downcasting
1688  int DtkDynamicType(const int& inId);
1690 
1691  //constructors
1696  static Dtk_TransformedSurfacePtr Create(const Dtk_SurfacePtr &inSurf, const Dtk_transfo& inTransformation);
1698 
1699  //methods
1702 
1704  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1705  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1706  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1707  virtual Dtk_Size_t GetSize() const;
1708  virtual Dtk_ErrorStatus _Store(void*);
1711  Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int extendtype) const;
1712  Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir* outdirs, int exttype) const;
1713 };
1714 
1721 {
1722 private:
1723  struct Dtk_Handle; // Not defined here
1724  Dtk_Handle *_Private; // Handle
1725 
1726  enum { _typeID = DTK_TYPE_MESH_SURFACE };
1727  Dtk_MeshSurface();
1728  Dtk_MeshSurface( const Dtk_MeshSurface& s );
1729  virtual ~Dtk_MeshSurface();
1730  inline virtual Dtk_Object* Clone() {return new Dtk_MeshSurface( *this );}
1731  Dtk_MeshSurface( const std::vector<Dtk_pnt>& inP, const std::vector<Dtk_UInt32>& index );
1732  Dtk_MeshSurface( const std::vector<Dtk_pnt>& inP, const std::vector<Dtk_UInt32>& index, const std::vector<Dtk_dir>& inD, const std::vector<Dtk_UInt32>& aindex );
1733 private:
1734  void _Init();
1735  friend class Dtk_SmartPtr<Dtk_MeshSurface>;
1736  void _Copy( const Dtk_MeshSurface& s );
1737  void _Reset();
1738 
1739 
1740 public:
1741  int DtkDynamicType( const int& inId );
1747  virtual Dtk_ErrorStatus GetDomain( Dtk_Double64 outDomain[] ) const;
1750  virtual Dtk_NurbsSurfacePtr ToNurbs( const Dtk_Double64 *inTrimDomain = NULL ) const;
1753  virtual Dtk_ErrorStatus ComputeUVPoint( const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt ) const;
1754 
1755  Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int extendtype) const;
1760 
1764 
1765  //Internal Use
1766  static Dtk_MeshSurfacePtr Create( const std::vector<Dtk_pnt>& inP, const std::vector<Dtk_UInt32>& index );
1767  static Dtk_MeshSurfacePtr Create( const std::vector<Dtk_pnt>& inP, const std::vector<Dtk_UInt32>& index, const std::vector<Dtk_dir>& inD, const std::vector<Dtk_UInt32>& aindex );
1768  const std::vector<Dtk_pnt>& GetVertexArray() const;
1769  const std::vector<Dtk_dir>& GetNormArray() const;
1770  const std::vector<Dtk_UInt32>& GetVertexArrayIndex() const;
1771  const std::vector<Dtk_UInt32>& GetAttrArrayIndex() const;
1772 
1773 };
1774 
1775 
1776 
1777 /*************************************** END SURFACES **********************************/
1778 
1779 
1780 #endif
Dtk_PlaneSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:963
Dtk_CylindricalSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Polyline::~Dtk_Polyline
virtual ~Dtk_Polyline()
Default destructor.
Dtk_Curve::Reverse
virtual void Reverse()=0
Reverse Curve.
Dtk_ToroidalSurface::get_type_detk
type_detk get_type_detk() const
Dtk_NurbsCurve::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_Parabola::GetFocalDistance
Dtk_Double64 GetFocalDistance() const
Dtk_Ellipse::Create
static Dtk_EllipsePtr Create(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inRadius)
Dtk_Polyline::Point
Dtk_pnt & Point(const Dtk_Size_t &inIndex)
Dtk_Surface::IsVPeriodic
virtual Dtk_bool IsVPeriodic() const
Return DTK_TRUE If Periodic following V parameter.
Dtk_Line::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_Conic::GetZDirection
const Dtk_dir & GetZDirection() const
Dtk_StandardRevolutionSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_PlaneSurface::GetNormal
Dtk_dir GetNormal() const
Dtk_Line::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:430
Dtk_NurbsSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_ToroidalSurface::Create
static Dtk_ToroidalSurfacePtr Create(const Dtk_ToroidalSurface &inSurfToCopy)
Dtk_Line::ComputeBoundingBox
virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, Dtk_bool inMorePrecise=0)
Compute Bounding Box.
Dtk_Conic::GetNormalDirection
const Dtk_dir & GetNormalDirection() const
Get Normal vector of Conic (inNormal on schema)
Dtk_NurbsSurface::SetIsVPeriodic
void SetIsVPeriodic(Dtk_bool inPeriodicFlag)
Dtk_FilletSurface::GetNumAdjacentCurves
Dtk_Size_t GetNumAdjacentCurves() const
Dtk_TransformedSurface::Dtk_TransformedSurface
Dtk_TransformedSurface(const Dtk_TransformedSurface &s)
Dtk_RevolutionSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1024
Dtk_NurbsSurface::~Dtk_NurbsSurface
virtual ~Dtk_NurbsSurface()
Dtk_transfo
This is the Transformation dedicated class.
Definition: dtk_transfo.hpp:19
Dtk_CylindricalSurface::DtkDynamicCast
static Dtk_CylindricalSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_NurbsCurve::IsPeriodic
virtual Dtk_bool IsPeriodic() const
return DTK_TRUE if nurbs is periodic
Dtk_Line::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_Line::Dtk_Line
Dtk_Line(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2)
constructor
Dtk_RuledSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_OffsetSurface::~Dtk_OffsetSurface
virtual ~Dtk_OffsetSurface()
Dtk_Curve::Dtk_Curve
Dtk_Curve(const Dtk_Curve &s)
Dtk_StandardRevolutionSurface::GetYDirection
Dtk_dir GetYDirection() const
Give Y Direction (Axis Placement can be indirect )
Dtk_ToroidalSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Curve::ComputeUPointDir
virtual Dtk_ErrorStatus ComputeUPointDir(const Dtk_Double64 &inU, Dtk_pnt &outPoint, Dtk_dir &outDir) const
Compute point and dir on U parameter.
Dtk_StandardRevolutionSurface
This is the Revolution Surface Class. U parametrisation : revolved curve parametrisation V parametris...
Definition: util_geom_dtk.hpp:1106
Dtk_SphericalSurface
This is the Spherical Surface Class. U parametrisation : [0.0 - 2PI] 0.0 is given by inUDirection or ...
Definition: util_geom_dtk.hpp:1488
DTK_TYPE_MESH_SURFACE
@ DTK_TYPE_MESH_SURFACE
Definition: define.h:611
Dtk_NurbsCurve::Reparam
Dtk_ErrorStatus Reparam(const Dtk_Double64 &inUmin, const Dtk_Double64 &inUmax)
Set Curve parametrisation domain.
Dtk_NurbsSurface::get_type_detk
type_detk get_type_detk() const
Dtk_Conic::~Dtk_Conic
virtual ~Dtk_Conic()
Dtk_CylindricalSurface::get_type_detk
type_detk get_type_detk() const
Dtk_MeshSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
No parametrisation.
Dtk_MeshSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
No parametrisation.
Dtk_ConicalSurface
This is the Conical Surface Class. U parametrisation : [0.0 - 2PI] 0.0 is given by inUDirection or in...
Definition: util_geom_dtk.hpp:1366
Dtk_Curve::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:92
Dtk_Parabola::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_NurbsCurve::_KnotInsertion
Dtk_ErrorStatus _KnotInsertion(const Dtk_Double64 &inUparameter, const Dtk_Size_t &inOccurence, Dtk_Double64 inTolerance=DTK_TOLERANCE)
Dtk_NurbsSurface::GetTypeBeforeConversion
type_detk GetTypeBeforeConversion() const
Dtk_ToroidalSurface::DtkDynamicCast
static Dtk_ToroidalSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_RuledSurface::Create
static Dtk_RuledSurfacePtr Create(const Dtk_CurvePtr &inFirstCurve, const Dtk_CurvePtr &inSecondCurve)
Create Dtk_RuledSurface between two curves.
Dtk_Polyline::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_NurbsCurve::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_RevolutionSurface::GetAxisPosition
const Dtk_pnt & GetAxisPosition() const
Get origin
Dtk_Conic::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_NurbsSurface::Dtk_NurbsSurface
Dtk_NurbsSurface(const Dtk_NurbsSurface &inSurfaceToCopy)
Dtk_Conic::Transform
virtual Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
transform Conic
Dtk_NurbsSurface::SetIsUPeriodic
void SetIsUPeriodic(Dtk_bool inPeriodicFlag)
Dtk_NurbsSurface::GetNumPointsV
Dtk_Size_t GetNumPointsV() const
Dtk_Hyperbola::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_Ellipse::ComputeBoundingBox
virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, Dtk_bool inMorePrecise=0)
Compute Bounding Box.
Dtk_NurbsSurface::GetWeight
Dtk_Double64 GetWeight(const Dtk_Size_t &inUIndex, const Dtk_Size_t &inVIndex) const
Dtk_OffsetSurface::Dtk_OffsetSurface
Dtk_OffsetSurface()
Dtk_Polyline::ToNurbs
virtual Dtk_NurbsCurvePtr ToNurbs() const
Convert Curve to nurbs.
Dtk_Ellipse::get_type_detk
type_detk get_type_detk() const
Dtk_LinearExtrusionSurface::Create
static Dtk_LinearExtrusionSurfacePtr Create(const Dtk_LinearExtrusionSurface &inSurfToCopy)
Dtk_NurbsSurface::Dtk_NurbsSurface
Dtk_NurbsSurface(const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnots, const Dtk_tab< Dtk_Double64 > &inVKnots, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE)
Dtk_ToroidalSurface::Create
static Dtk_ToroidalSurfacePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_Double64 &inMajorRadius, const Dtk_Double64 &inMinorRadius, const Dtk_dir &inYDir=Dtk_dir())
Create Dtk_ToroidalSurface.
Dtk_Conic::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:508
Dtk_StandardRevolutionSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_PlaneSurface::Create
static Dtk_PlaneSurfacePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_dir &inVDirection=Dtk_dir())
Create an infinite plane surface.
DTK_TOLERANCE
#define DTK_TOLERANCE
Definition: str_def.h:7
Dtk_PlaneSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_MeshSurface::_ComputeAnyDerivative
Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int extendtype) const
Dtk_SphericalSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_MeshSurface::Create
static Dtk_MeshSurfacePtr Create(const std::vector< Dtk_pnt > &inP, const std::vector< Dtk_UInt32 > &index)
Dtk_Hyperbola::GetSemiImageAxis
Dtk_Double64 GetSemiImageAxis() const
Dtk_Line::Create
static Dtk_LinePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection)
Dtk_Ellipse::Dtk_Ellipse
Dtk_Ellipse(const Dtk_Ellipse &inEllipseToCopy)
DTK_TYPE_CONIC
@ DTK_TYPE_CONIC
Definition: define.h:59
Dtk_NurbsSurface::ForceG1Continuity
Dtk_NurbsSurfacePtr ForceG1Continuity(Dtk_Double64 tolerance_to_remove=0.0005) const
Dtk_Polyline::Dtk_Polyline
Dtk_Polyline(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2)
constructor
Dtk_RuledSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1258
Dtk_TransformedSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1674
Dtk_RuledSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1254
Dtk_RuledSurface::_ComputeMultipleDerivative
Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_CylindricalSurface::_ComputeMultipleDerivative
Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_ToroidalSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1433
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_NurbsCurvePtr &s, const Dtk_tab< Dtk_Double64 > &inKnotsValues, const Dtk_tab< Dtk_UChar8 > &inKnotsMultiplicities)
Dtk_NurbsSurface::Create
static Dtk_NurbsSurfacePtr Create(const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnots, const Dtk_tab< Dtk_Double64 > &inVKnots, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE)
Dtk_StandardRevolutionSurface::SetTrimUVBox
Dtk_ErrorStatus SetTrimUVBox(Dtk_Double64 inDomain[])
Set Surface Trim Box : Umin = inTrimValues[0] Umax = inTrimValues[1] Vmin = inTrimValues[2] Vmax = in...
Dtk_Curve::ToNurbs
virtual Dtk_NurbsCurvePtr ToNurbs() const =0
Convert Curve to nurbs.
Dtk_Hyperbola::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:695
Dtk_NurbsSurface::GetUKnotMultiplicity
Dtk_UInt32 GetUKnotMultiplicity(const Dtk_Size_t &inIndex) const
Dtk_FilletSurface::Dtk_FilletSurface
Dtk_FilletSurface()
Dtk_Curve::SetTrimmingParameters
virtual Dtk_ErrorStatus SetTrimmingParameters(const Dtk_Double64 &inUmin, const Dtk_Double64 &inUmax)
Set Trim parameter for curve.
Dtk_SphericalSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_PlaneSurface::GetVDirection
Dtk_dir GetVDirection() const
Dtk_Parabola::Dtk_Parabola
Dtk_Parabola()
Dtk_Parabola::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:642
Dtk_Curve::SetTrimPoints
void SetTrimPoints(const Dtk_pnt &inStartPoint, const Dtk_pnt &inEndPoint)
Set Trim points for curve.
Dtk_Line::Normalize
virtual void Normalize()
Normalize Curve.
Dtk_FilletSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_NurbsSurface::ComputeVDerivative
virtual Dtk_ErrorStatus ComputeVDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const
Dtk_PlaneSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_LinearExtrusionSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_LinearExtrusionSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1195
Dtk_LinearExtrusionSurface::DtkDynamicCast
static Dtk_LinearExtrusionSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_RevolutionSurface::GetXDirection
const Dtk_dir & GetXDirection() const
Give U origin for parametrisation.
Dtk_RuledSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Curve::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const =0
Convert Curve to polyline.
Dtk_SphericalSurface::IsUPeriodic
virtual Dtk_bool IsUPeriodic() const
Return DTK_TRUE If Periodic following U parameter.
Dtk_Point::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:23
Dtk_FilletSurface::~Dtk_FilletSurface
virtual ~Dtk_FilletSurface()
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_UInt32 &inDegree, const Dtk_tab< Dtk_Double64 > &inKnotsValues, const Dtk_tab< Dtk_UChar8 > &inKnotsMultiplicities, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >())
Dtk_Curve::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const =0
Compute point on U parameter.
Dtk_RevolutionSurface::Dtk_RevolutionSurface
Dtk_RevolutionSurface()
Dtk_SphericalSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1492
Dtk_Line::DtkDynamicCast
static Dtk_Line * DtkDynamicCast(Dtk_Object *inObjectToCast)
Dtk_Ellipse::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Polyline::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_Surface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_NurbsSurface::GetUDegree
Dtk_UInt32 GetUDegree() const
Dtk_NurbsCurve::Split
Dtk_ErrorStatus Split(Dtk_Double64 inTrimDom[2], Dtk_Double64 inTolerance=DTK_TOLERANCE)
Dtk_TransformedSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_Curve::DeleteCorrespondingNurbs
void DeleteCorrespondingNurbs()
Dtk_TransformedSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1678
Dtk_Line::Dtk_Line
Dtk_Line()
Default constructor.
Dtk_OffsetSurface::ComputeOffsetedSurface
Dtk_SurfacePtr ComputeOffsetedSurface()
Compute the result Surface with the offset applied. For some surfaces, their type can be conserved,...
catiav5w::inTransfo
const Dtk_string const Dtk_transfo & inTransfo
Definition: catiav5w.hpp:619
Dtk_FilletSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1616
Dtk_Point::~Dtk_Point
virtual ~Dtk_Point()
Dtk_CylindricalSurface::Dtk_CylindricalSurface
Dtk_CylindricalSurface(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_dir &inYDirection, const Dtk_Double64 &inRadius)
DTK_TYPE_POLYLINE
@ DTK_TYPE_POLYLINE
Definition: define.h:58
Dtk_Polyline::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_Curve::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outU) const =0
Compute U parameter from point.
Dtk_PlaneSurface::GetZDirection
Dtk_dir GetZDirection() const
Dtk_OffsetSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
DTK_TYPE_SPHERICAL_SURFACE
@ DTK_TYPE_SPHERICAL_SURFACE
Definition: define.h:95
Dtk_Polyline::AddPoint
void AddPoint(const Dtk_Double64 &inX, const Dtk_Double64 &inY, const Dtk_Double64 &inZ=0.0)
Dtk_RevolutionSurface::GetRadius
Dtk_Double64 GetRadius() const
Get Radius at origin.
Dtk_PlaneSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_TransformedSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_NurbsSurface::GetUnpackedUKnot
Dtk_Double64 * GetUnpackedUKnot() const
Dtk_SphericalSurface::Create
static Dtk_SphericalSurfacePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_Double64 &inRadius, const Dtk_dir &inYDir=Dtk_dir())
Create Dtk_SphericalSurface.
Dtk_ToroidalSurface::Dtk_ToroidalSurface
Dtk_ToroidalSurface()
Dtk_NurbsCurve::ComputeBoundingBox
Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, Dtk_bool inMorePrecise=0)
Compute Bounding Box.
Dtk_Polyline::Create
static Dtk_PolylinePtr Create(const Dtk_tab< Dtk_pnt > &inPoints)
Dtk_StandardRevolutionSurface::Normalize
Dtk_ErrorStatus Normalize()
Dtk_PlaneSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_Curve::Dtk_Curve
Dtk_Curve()
Dtk_TransformedSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1672
Dtk_FilletSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_ToroidalSurface
This is the Toroidal Surface Class. U parametrisation : [0.0 - 2PI] 0.0 is given by inUDirection or i...
Definition: util_geom_dtk.hpp:1425
Dtk_NurbsSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Conic::ToNurbs
virtual Dtk_NurbsCurvePtr ToNurbs() const
Get Nurbs corresponding to conic (with trim)
Dtk_RevolutionSurface::~Dtk_RevolutionSurface
virtual ~Dtk_RevolutionSurface()
Dtk_NurbsSurface::IsUniform
Dtk_bool IsUniform() const
Dtk_UInt32
uint32_t Dtk_UInt32
Definition: define.h:688
Dtk_PlaneSurface::Dtk_PlaneSurface
Dtk_PlaneSurface(const Dtk_PlaneSurface &s)
Dtk_Line::~Dtk_Line
virtual ~Dtk_Line()
Default destructor.
Dtk_SphericalSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_ToroidalSurface::Dtk_ToroidalSurface
Dtk_ToroidalSurface(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inYDir, const Dtk_dir &inUDirection, const Dtk_Double64 &inMajorRadius, const Dtk_Double64 &inMinorRadius)
Dtk_Size_t
size_t Dtk_Size_t
Definition: define.h:712
Dtk_Curve::GetTrimUMax
Dtk_Double64 GetTrimUMax() const
Get end Trim parameter.
Dtk_NurbsSurface::Transform
virtual Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_StandardRevolutionSurface::DtkDynamicCast
static Dtk_StandardRevolutionSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_StandardRevolutionSurface::SetStartAngle
Dtk_ErrorStatus SetStartAngle(Dtk_Double64 inAngle)
Dtk_PlaneSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_ToroidalSurface::GetMajorRadius
Dtk_Double64 GetMajorRadius() const
Dtk_Conic::get_type_detk
type_detk get_type_detk() const
Dtk_Curve::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Curve::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_Ellipse::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
transform
Dtk_OffsetSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Point::Dtk_Point
Dtk_Point(const Dtk_Point &s)
Dtk_Hyperbola::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_ToroidalSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Point::Create
static Dtk_PointPtr Create(const Dtk_pnt &inToCopy)
Dtk_Curve::ComputeBoundingBox
virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, Dtk_bool inMorePrecise=0)
Compute Bounding Box.
Dtk_Polyline::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_Conic::GetCenterPoint
const Dtk_pnt & GetCenterPoint() const
Get Center of Conic (inCenter on schema)
Dtk_NurbsSurface::Point
Dtk_pnt & Point(const Dtk_Size_t &inUIndex, const Dtk_Size_t &inVIndex)
Dtk_RevolutionSurface::GetRevolvedCurve
Dtk_CurvePtr GetRevolvedCurve() const
GetRevolvedCurve.
Dtk_NurbsCurve::IsUniform
Dtk_bool IsUniform() const
return DTK_TRUE if knots are uniform
Dtk_Surface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:761
Dtk_ToroidalSurface::_ComputeMultipleDerivative
Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_LinearExtrusionSurface::Dtk_LinearExtrusionSurface
Dtk_LinearExtrusionSurface()
Dtk_Surface::IsUPeriodic
virtual Dtk_bool IsUPeriodic() const
Return DTK_TRUE If Periodic following U parameter.
Dtk_NurbsCurve::GetNumPoints
Dtk_Size_t GetNumPoints() const
return Num Control points
Dtk_Conic::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_RevolutionSurface::Dtk_RevolutionSurface
Dtk_RevolutionSurface(const Dtk_RevolutionSurface &inSurfToCopy)
Dtk_Line::ComputeUDir
virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64 &inU, Dtk_dir &outDir) const
Compute dir on U parameter.
Dtk_PlaneSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_ConicalSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_SphericalSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Curve
Dtk_Curve is a geometrical entity representing a curve. It is an abstract class that cannot be instan...
Definition: util_geom_dtk.hpp:88
Dtk_RevolutionSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_OffsetSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1555
Dtk_RevolutionSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_ConicalSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Line::Dtk_Line
Dtk_Line(const Dtk_Line &inLineToCopy)
constructor
Dtk_Hyperbola::Dtk_Hyperbola
Dtk_Hyperbola(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inSemiAxis, const Dtk_Double64 &inSemiImageAxis)
Dtk_Parabola::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Return First point.
Dtk_Hyperbola::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:693
Dtk_StandardRevolutionSurface::get_type_detk
type_detk get_type_detk() const
Dtk_ConicalSurface::get_type_detk
type_detk get_type_detk() const
Dtk_Point::GetCoordinates
Dtk_ErrorStatus GetCoordinates(Dtk_pnt &pnt) const
Dtk_TransformedSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_LinearExtrusionSurface::_ComputeAnyDerivative
Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_NurbsCurve::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outParameter) const
Compute pparameter.
Dtk_Polyline::Create
static Dtk_PolylinePtr Create(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2)
Dtk_LinearExtrusionSurface::get_type_detk
type_detk get_type_detk() const
Dtk_Line::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Ellipse::GetMinorRadius
Dtk_Double64 GetMinorRadius() const
Dtk_NurbsCurve::IsRationnal
Dtk_bool IsRationnal() const
return DTK_TRUE if one weight != 1
Dtk_NurbsSurface::Reparam
virtual Dtk_ErrorStatus Reparam(Dtk_Double64 inDomain[])
Dtk_RevolutionSurface::DtkDynamicCast
static Dtk_RevolutionSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_FilletSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_RevolutionSurface::GetZDirection
const Dtk_dir & GetZDirection() const
GetZDirection.
Dtk_LinearExtrusionSurface::IsUPeriodic
virtual Dtk_bool IsUPeriodic() const
Return DTK_TRUE If Periodic following U parameter.
DTK_TYPE_PARABOLA
@ DTK_TYPE_PARABOLA
Definition: define.h:63
Dtk_Parabola::Dtk_Parabola
Dtk_Parabola(const Dtk_Parabola &inToCopy)
Dtk_StandardRevolutionSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1108
Dtk_SphericalSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1490
Dtk_NurbsSurface::_KnotInsertion
Dtk_ErrorStatus _KnotInsertion(const Dtk_Double64 &inParameter, const Dtk_Size_t &inOccurence, const Dtk_bool &inUSplit, Dtk_Double64 inTolerance=DTK_TOLERANCE)
Dtk_Parabola::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:646
Dtk_Polyline::Point
const Dtk_pnt & Point(const Dtk_Size_t &inIndex) const
return the point at place inIndex
Dtk_Polyline::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Compute dir on U parameter.
Dtk_FilletSurface::Create
static Dtk_FilletSurfacePtr Create(const Dtk_FilletSurface &inSurfToCopy)
Dtk_CylindricalSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
DTK_FALSE
#define DTK_FALSE
Definition: define.h:728
Dtk_NurbsSurface::DtkDynamicCast
static Dtk_NurbsSurface * DtkDynamicCast(Dtk_Object *s)
DTK_TYPE_NURBS_CURVE
@ DTK_TYPE_NURBS_CURVE
Definition: define.h:494
Dtk_Polyline::Dtk_Polyline
Dtk_Polyline(const Dtk_Polyline &inPolylineToCopy)
constructor
Dtk_Parabola::~Dtk_Parabola
virtual ~Dtk_Parabola()
Dtk_Ellipse::DtkDynamicCast
static Dtk_Ellipse * DtkDynamicCast(Dtk_Object *inObject)
Dtk_bool
char Dtk_bool
Definition: define.h:725
Dtk_NurbsCurve::GetWeight
Dtk_Double64 GetWeight(const Dtk_Size_t &inIndex) const
return weight
Dtk_ConicalSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1370
Dtk_Polyline::_Private
Dtk_Handle * _Private
Handle
Definition: util_geom_dtk.hpp:341
Dtk_RevolutionSurface::GetYDirection
Dtk_dir GetYDirection() const
Give Y Direction (Axis Placement can be indirect )
Dtk_Hyperbola::get_type_detk
type_detk get_type_detk() const
Dtk_Curve::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_OffsetSurface::Dtk_OffsetSurface
Dtk_OffsetSurface(const Dtk_SurfacePtr &inSurf, const Dtk_Double64 &inOffset)
Dtk_Hyperbola::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_RevolutionSurface::_ComputeMultipleDerivative
virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_Surface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_Ellipse::Create
static Dtk_EllipsePtr Create(const Dtk_Ellipse &inEllipseToCopy)
Dtk_Ellipse::Dtk_Ellipse
Dtk_Ellipse()
Dtk_Curve::GetTrimEndPoint
Dtk_pnt GetTrimEndPoint() const
Return last trim point.
Dtk_NurbsCurve::Point
const Dtk_pnt & Point(const Dtk_Size_t &inIndex) const
return the point at place inIndex
Dtk_OffsetSurface::Create
static Dtk_OffsetSurfacePtr Create(const Dtk_OffsetSurface &inSurfToCopy)
Dtk_Conic::Create
static Dtk_ConicPtr Create(const Dtk_Conic &inConicToCopy)
Dtk_FilletSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_LinearExtrusionSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_Conic::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_Hyperbola::Dtk_Hyperbola
Dtk_Hyperbola()
Dtk_OffsetSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_PlaneSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve(const Dtk_NurbsCurve &s)
Dtk_Polyline::DtkDynamicCast
static Dtk_Polyline * DtkDynamicCast(Dtk_Object *inObjectToCast)
Dtk_RuledSurface::get_type_detk
type_detk get_type_detk() const
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve()
Dtk_Curve::GetDimension
Dtk_Size_t GetDimension() const
Return 2 or 3.
Dtk_FilletSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Hyperbola::GetDomain
Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_Surface::~Dtk_Surface
virtual ~Dtk_Surface()
Dtk_SphericalSurface::Create
static Dtk_SphericalSurfacePtr Create(const Dtk_SphericalSurface &inSurfToCopy)
Dtk_LinearExtrusionSurface
This is the Linear Extrusion Surface Class. U parametrisation : Curve to be extruded V parametrisatio...
Definition: util_geom_dtk.hpp:1191
Dtk_FilletSurface::Create
static Dtk_FilletSurfacePtr Create(const Dtk_CurvePtr &inSpine, const Dtk_Double64 &inAngle1, const Dtk_Double64 &inAngle2, const Dtk_tab< Dtk_CurvePtr > &inAdjacentCurve, const Dtk_tab< Dtk_SurfacePtr > &inAdjacentSurface, const Dtk_tab< Dtk_Double64 > &inSpineParam=Dtk_tab< Dtk_Double64 >(), const Dtk_tab< Dtk_Double64 > &inKnots=Dtk_tab< Dtk_Double64 >(), const Dtk_Double64 &inConstantRadius=-1.0, const Dtk_NurbsSurfacePtr &inCorrespondingNurbs=NULL)
Dtk_Double64
double Dtk_Double64
Definition: define.h:699
Dtk_TransformedSurface::GetSurface
Dtk_SurfacePtr GetSurface() const
Dtk_OffsetSurface::Dtk_OffsetSurface
Dtk_OffsetSurface(const Dtk_OffsetSurface &s)
Dtk_CylindricalSurface::Create
static Dtk_CylindricalSurfacePtr Create(const Dtk_CylindricalSurface &inSurfToCopy)
Dtk_PlaneSurface::GetUDirection
Dtk_dir GetUDirection() const
Dtk_Hyperbola::ToNurbs
Dtk_NurbsCurvePtr ToNurbs() const
Get Nurbs corresponding to conic (with trim)
Dtk_ToroidalSurface::GetMinorRadius
Dtk_Double64 GetMinorRadius() const
Dtk_PlaneSurface::Dtk_PlaneSurface
Dtk_PlaneSurface()
Dtk_Ellipse::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_ConicalSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_RevolutionSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Polyline::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:354
Dtk_NurbsSurface::IsBezier
Dtk_bool IsBezier() const
Dtk_NurbsCurve::SetIsPeriodic
void SetIsPeriodic(const Dtk_bool &inIsPeriodic)
sets is_closed field to DTK_TRUE or DTK_FALSE
Dtk_FilletSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_NurbsCurve::_ComputeWeight
Dtk_Double64 _ComputeWeight(Dtk_Double64 inUvalue, int exttype) const
Dtk_Surface::_ComputeMultipleDerivative
virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int extendtype) const
DTK_TYPE_CURVE
@ DTK_TYPE_CURVE
Definition: define.h:67
Dtk_RevolutionSurface::SetTrimUVBox
Dtk_ErrorStatus SetTrimUVBox(Dtk_Double64 inDomain[])
Set Surface Trim Box : Umin = inTrimValues[0] Umax = inTrimValues[1] Vmin = inTrimValues[2] Vmax = in...
Dtk_ConicalSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_Conic::SetStartAngle
Dtk_ErrorStatus SetStartAngle(Dtk_Double64 inAngle)
Dtk_Point::Dtk_Point
Dtk_Point()
Dtk_Polyline::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:345
Dtk_NurbsSurface::GetNumPointsU
Dtk_Size_t GetNumPointsU() const
Dtk_RuledSurface::DtkDynamicCast
static Dtk_RuledSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_Surface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const =0
Compute 3D point.
Dtk_Parabola::Dtk_Parabola
Dtk_Parabola(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inMajorRadius)
Dtk_NurbsCurve::GetKnotMultiplicity
Dtk_UInt32 GetKnotMultiplicity(const Dtk_Size_t &inIndex) const
return knot multiplicity at inIndex place
DTK_TYPE_NURBS_SURFACE
@ DTK_TYPE_NURBS_SURFACE
Definition: define.h:495
Dtk_NurbsSurface::IsPlane
Dtk_bool IsPlane() const
Dtk_Parabola::Create
static Dtk_ParabolaPtr Create(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inFocal)
Dtk_LinearExtrusionSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1193
Dtk_NurbsCurve::get_type_detk
type_detk get_type_detk() const
Return Curve type.
Dtk_Ellipse::ComputeUDir
virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64 &inU, Dtk_dir &outDir) const
Compute dir on U parameter.
Dtk_PlaneSurface::Create
static Dtk_PlaneSurfacePtr Create(const Dtk_PlaneSurface &inPlaneToCopy)
Dtk_StandardRevolutionSurface::Dtk_StandardRevolutionSurface
Dtk_StandardRevolutionSurface(const Dtk_StandardRevolutionSurface &inSurfToCopy)
Dtk_FilletSurface
Definition: util_geom_dtk.hpp:1606
util_mesh_dtk.hpp
Dtk_ToroidalSurface::Dtk_ToroidalSurface
Dtk_ToroidalSurface(const Dtk_ToroidalSurface &s)
Dtk_Line::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Return First point.
Dtk_NurbsCurve::_KnotRemoval
int _KnotRemoval(const Dtk_Double64 &inU, const int &inNum, const Dtk_Double64 &inTolerance)
Dtk_NurbsSurface::_KnotRemoval
int _KnotRemoval(const Dtk_Double64 &inParameter, const int &inOccurence, const Dtk_bool &inUSplit, const Dtk_Double64 &inTolerance)
Dtk_Polyline::Dtk_Polyline
Dtk_Polyline(const Dtk_tab< Dtk_pnt > &inPoints)
constructor
DTK_TYPE_SURFACE
@ DTK_TYPE_SURFACE
Definition: define.h:114
Dtk_Ellipse::IsCircle
Dtk_bool IsCircle() const
Dtk_Surface::SetTrimUVBox
virtual Dtk_ErrorStatus SetTrimUVBox(Dtk_Double64 inTrimValues[])
Set Surface Trim Box : Umin = inTrimValues[0] Umax = inTrimValues[1] Vmin = inTrimValues[2] Vmax = in...
Dtk_SphericalSurface::_ComputeAnyDerivative
Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_NurbsCurve::Reverse
virtual void Reverse()
Reverse Curve.
DTK_TYPE_STANDARD_REVOLUTION_SURFACE
@ DTK_TYPE_STANDARD_REVOLUTION_SURFACE
Definition: define.h:497
Dtk_CylindricalSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_ToroidalSurface::IsUPeriodic
virtual Dtk_bool IsUPeriodic() const
Return DTK_TRUE If Periodic following U parameter.
Dtk_Surface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const =0
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_ConicalSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_FilletSurface::GetParam1
Dtk_Double64 GetParam1() const
Dtk_Line::GetDirection
Dtk_dir GetDirection() const
return direction of line
Dtk_CylindricalSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1309
Dtk_ToroidalSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_RevolutionSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_NurbsSurface::Dtk_NurbsSurface
Dtk_NurbsSurface(const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnotsValues, const Dtk_tab< Dtk_Double64 > &inVKnotsValues, const Dtk_tab< Dtk_UChar8 > &inUKnotsMultiplicities, const Dtk_tab< Dtk_UChar8 > &inVKnotsMultiplicities, const Dtk_tab< Dtk_tab< Dtk_pnt > > &inControlPoints, const Dtk_tab< Dtk_tab< Dtk_Double64 > > &inWeights=Dtk_tab< Dtk_tab< Dtk_Double64 > >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE)
Dtk_PlaneSurface::GetXDirection
Dtk_dir GetXDirection() const
Dtk_CylindricalSurface::_ComputeAnyDerivative
Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_SphericalSurface::get_type_detk
type_detk get_type_detk() const
Dtk_Curve::Clone
virtual Dtk_Object * Clone()=0
Dtk_CylindricalSurface
This is the Cylindrical Surface Class. U parametrisation : [0.0 - 2PI] 0.0 is given by inUDirection o...
Definition: util_geom_dtk.hpp:1307
Dtk_RuledSurface::Create
static Dtk_RuledSurfacePtr Create(const Dtk_RuledSurface &inSurfToCopy)
Dtk_MeshSurface::GetAttrArrayIndex
const std::vector< Dtk_UInt32 > & GetAttrArrayIndex() const
Dtk_ToroidalSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_NurbsCurve::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:192
Dtk_TransformedSurface::Create
static Dtk_TransformedSurfacePtr Create(const Dtk_SurfacePtr &inSurf, const Dtk_transfo &inTransformation)
Create an transformed surface.
Dtk_TransformedSurface::_ComputeAnyDerivative
Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int extendtype) const
Dtk_OffsetSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Ellipse::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outU) const
Compute U parameter from point.
Dtk_Point::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Parabola::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
transform
Dtk_MeshSurface::GetNormArray
const std::vector< Dtk_dir > & GetNormArray() const
Dtk_FilletSurface::_ComputeMultipleDerivative
virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int extendtype) const
Dtk_Polyline::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_Line::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:439
Dtk_TransformedSurface::~Dtk_TransformedSurface
virtual ~Dtk_TransformedSurface()
Dtk_MeshSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_Curve::DtkDynamicCast
static Dtk_Curve * DtkDynamicCast(Dtk_Object *inObject)
Dtk_Hyperbola::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Return First point.
Dtk_Curve::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const =0
Return Last point.
Dtk_OffsetSurface
This is the Offset Surface Class. U parametrisation : like basis surface V parametrisation : like bas...
Definition: util_geom_dtk.hpp:1553
DTK_TYPE_POINT
@ DTK_TYPE_POINT
Definition: define.h:488
Dtk_NurbsCurve::_DegreeElevation
Dtk_ErrorStatus _DegreeElevation(const Dtk_Size_t &inDegreeElevation)
Dtk_Point::GetCoordinates
Dtk_ErrorStatus GetCoordinates(Dtk_Double64 &x, Dtk_Double64 &y, Dtk_Double64 &z) const
Get Coordinates For Point.
Dtk_TransformedSurface::Create
static Dtk_TransformedSurfacePtr Create(const Dtk_TransformedSurface &inSurfToCopy)
Dtk_Curve::IsLine
Dtk_bool IsLine()
return True if Curve is a line
Dtk_ConicalSurface::Create
static Dtk_ConicalSurfacePtr Create(const Dtk_ConicalSurface &inSurfToCopy)
Dtk_Polyline::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_OffsetSurface::get_type_detk
type_detk get_type_detk() const
Dtk_StandardRevolutionSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_PlaneSurface::GetOrigin
Dtk_pnt GetOrigin() const
Dtk_Parabola::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_Hyperbola::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_Polyline::Transform
virtual Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
transform Polyline with inTransformation
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve(const Dtk_tab< Dtk_CurvePtr > &inCurvesToMerge, Dtk_Double64 stichtol, Dtk_bool LengthParameter)
Dtk_Parabola
Definition: util_geom_dtk.hpp:638
Dtk_Curve::Normalize
virtual void Normalize()
Normalize Curve.
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_UInt32 &inDegree, const Dtk_tab< Dtk_Double64 > &inKnots, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >())
Dtk_Line::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_FilletSurface::GetKnots
Dtk_tab< Dtk_Double64 > GetKnots() const
Dtk_FilletSurface::GetAdjacentSurface
Dtk_SurfacePtr GetAdjacentSurface(const Dtk_Size_t &inIndex) const
Dtk_NurbsCurve::CanHaveDiscontinuity
Dtk_bool CanHaveDiscontinuity() const
return DTK_TRUE if nurbs can have discontinuity
Dtk_RevolutionSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_StandardRevolutionSurface::GetRevolvedCurve
Dtk_CurvePtr GetRevolvedCurve() const
GetRevolvedCurve.
Dtk_Surface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_PlaneSurface::~Dtk_PlaneSurface
virtual ~Dtk_PlaneSurface()
Dtk_Line::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_Line::Create
static Dtk_LinePtr Create(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2)
Dtk_LinearExtrusionSurface::Dtk_LinearExtrusionSurface
Dtk_LinearExtrusionSurface(const Dtk_CurvePtr &inExtrudedCurve, const Dtk_dir &inExtrusionAxis)
Dtk_Line::Create
static Dtk_LinePtr Create(const Dtk_Line &inLineToCopy)
constructors returning Smart pointers
Dtk_ToroidalSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_RevolutionSurface::GetRevolutionAxis
const Dtk_dir & GetRevolutionAxis() const
GetRevolutionAxis.
Dtk_MeshSurface::GetVertexArrayIndex
const std::vector< Dtk_UInt32 > & GetVertexArrayIndex() const
Dtk_Line::ToNurbs
virtual Dtk_NurbsCurvePtr ToNurbs() const
Convert Curve to nurbs.
Dtk_CylindricalSurface::GetRadius
Dtk_Double64 GetRadius() const
Dtk_NurbsSurface::IsRationnal
Dtk_bool IsRationnal() const
DTK_TYPE_PLANE
@ DTK_TYPE_PLANE
Definition: define.h:92
Dtk_NurbsSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_NurbsSurface::ComputeUDerivative
virtual Dtk_ErrorStatus ComputeUDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const
Dtk_RevolutionSurface::Create
static Dtk_RevolutionSurfacePtr Create(const Dtk_RevolutionSurface &inSurfToCopy)
Dtk_Point::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_OffsetSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1557
Dtk_MeshSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
No corresponding nurbs nurface.
Dtk_RuledSurface::_ComputeAnyDerivative
Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_TransformedSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_NurbsCurve::GetNumKnots
Dtk_Size_t GetNumKnots() const
return number of different knot value
Dtk_RuledSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Point::Dtk_Point
Dtk_Point(const Dtk_pnt &pt)
constructors
Dtk_Hyperbola::DtkDynamicCast
static Dtk_Hyperbola * DtkDynamicCast(Dtk_Object *inObject)
Dtk_NurbsSurface::GetVKnotMultiplicity
Dtk_UInt32 GetVKnotMultiplicity(const Dtk_Size_t &inIndex) const
Dtk_SphericalSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_SphericalSurface::IsVPeriodic
virtual Dtk_bool IsVPeriodic() const
Return DTK_TRUE If Periodic following V parameter.
Dtk_Surface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:759
Dtk_OffsetSurface::GetSurface
Dtk_SurfacePtr GetSurface() const
Dtk_NurbsSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:843
Dtk_ConicalSurface::GetSemiAngle
Dtk_Double64 GetSemiAngle() const
Dtk_Hyperbola
Definition: util_geom_dtk.hpp:691
Dtk_Curve::~Dtk_Curve
virtual ~Dtk_Curve()
Dtk_RevolutionSurface
This is the Revolution Surface Class. U parametrisation : [0.0 - 2PI] 0.0 is given by inUDirection or...
Definition: util_geom_dtk.hpp:1020
Dtk_SphericalSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_ConicalSurface::~Dtk_ConicalSurface
virtual ~Dtk_ConicalSurface()
Dtk_FilletSurface::DtkDynamicCast
static Dtk_FilletSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_MeshSurface::DtkDynamicCast
static Dtk_MeshSurface * DtkDynamicCast(Dtk_Object *inObject)
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve(const Dtk_UInt32 &inDegree, const Dtk_tab< Dtk_Double64 > &inKnots, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >())
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_tab< Dtk_CurvePtr > &inCurvesToMerge, Dtk_Double64 stichtol=DTK_TOLERANCE, Dtk_bool LengthParameter=DTK_FALSE)
Dtk_CylindricalSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_StandardRevolutionSurface::GetRevolutionAxis
const Dtk_dir & GetRevolutionAxis() const
GetRevolutionAxis.
DTK_TYPE_LINE
@ DTK_TYPE_LINE
Definition: define.h:57
Dtk_MeshSurface::AddMeshFaceToMesh
Dtk_ErrorStatus AddMeshFaceToMesh(Dtk_MeshPtr &inoutMeshPtr) const
Add MeshSurface to Mesh.
Dtk_Hyperbola::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_CylindricalSurface::~Dtk_CylindricalSurface
virtual ~Dtk_CylindricalSurface()
Dtk_RuledSurface
This is the Ruled Surface Class. U Parametrisation is given by curve parametrisation V Parametrisatio...
Definition: util_geom_dtk.hpp:1250
Dtk_Polyline::GetNumPoints
Dtk_Size_t GetNumPoints() const
return number of points for the polyline
Dtk_Surface::PDtk_StoreDataSurface
friend void PDtk_StoreDataSurface(void *, Dtk_SurfacePtr &)
Dtk_NurbsSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_Curve::_Copy
void _Copy(const Dtk_Curve &s)
Dtk_Ellipse
This is the ellipse and circle Class. parametrisation :[ 0.0 - 2PI ] 0.0 is given by inXref or inOrig...
Definition: util_geom_dtk.hpp:575
Dtk_Ellipse::GetDomain
Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_Point::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:25
Dtk_Ellipse::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_NurbsCurve::ComputeUDir
virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64 &inU, Dtk_dir &outDir) const
Compute dir on U parameter.
Dtk_OffsetSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_ToroidalSurface::~Dtk_ToroidalSurface
virtual ~Dtk_ToroidalSurface()
Dtk_ToroidalSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_Hyperbola::Create
static Dtk_HyperbolaPtr Create(const Dtk_Hyperbola &inToCopy)
Dtk_FilletSurface::GetSpineCurve
Dtk_CurvePtr GetSpineCurve() const
Dtk_ErrorStatus
Dtk_ErrorStatus
Definition: error_dtk.hpp:6
Dtk_NurbsSurface::Dtk_NurbsSurface
Dtk_NurbsSurface()
Dtk_SphericalSurface::GetRadius
Dtk_Double64 GetRadius() const
Dtk_PlaneSurface::Dtk_PlaneSurface
Dtk_PlaneSurface(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_dir &inVDirection)
Dtk_Curve::SetDimension
void SetDimension(const Dtk_Size_t &inDimension)
Set curve dimension (2 or 3)
Dtk_FilletSurface::get_type_detk
type_detk get_type_detk() const
Dtk_NurbsCurve::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_Ellipse::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_ConicalSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Conic::Dtk_Conic
Dtk_Conic()
Dtk_Hyperbola::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_FilletSurface::Dtk_FilletSurface
Dtk_FilletSurface(const Dtk_CurvePtr &inSpine, const Dtk_Double64 &inAngle1, const Dtk_Double64 &inAngle2, const Dtk_Double64 &inConstantRadius, const Dtk_tab< Dtk_CurvePtr > &inAdjacentCurve, const Dtk_tab< Dtk_SurfacePtr > &inAdjacentSurface, const Dtk_tab< Dtk_Double64 > &inSpineParam, const Dtk_tab< Dtk_Double64 > &inKnots, const Dtk_Double64 &inRadius1, const Dtk_Double64 &inRadius2, const Dtk_NurbsSurfacePtr &inCorrespondingNurbs=NULL)
Dtk_NurbsSurface::GetVKnotValue
Dtk_Double64 GetVKnotValue(const Dtk_Size_t &inIndex) const
Dtk_NurbsSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:831
Dtk_NurbsCurve::ForceG1Continuity
Dtk_NurbsCurvePtr ForceG1Continuity() const
Dtk_FilletSurface::GetSpineParametrization
Dtk_tab< Dtk_Double64 > GetSpineParametrization() const
Dtk_Surface::ComputeUVto3DFirstDerivative
Dtk_ErrorStatus ComputeUVto3DFirstDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, const Dtk_dir &inUVFirstDerivative, Dtk_dir &out3DFirstDerivative) const
Compute 3D first derivative on UV point according to UV derivative.
Dtk_MeshSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Conic::DtkDynamicCast
static Dtk_Conic * DtkDynamicCast(Dtk_Object *inObject)
Dtk_NurbsSurface::SetTypeBeforeConversion
void SetTypeBeforeConversion(type_detk type)
Dtk_MeshSurface::GetVertexArray
const std::vector< Dtk_pnt > & GetVertexArray() const
Dtk_RuledSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_Point::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:29
Dtk_PlaneSurface::get_type_detk
type_detk get_type_detk() const
Dtk_StandardRevolutionSurface::Create
static Dtk_StandardRevolutionSurfacePtr Create(const Dtk_CurvePtr &inRevolvedCurve, const Dtk_pnt &inAxisposition, const Dtk_dir &inRevolutionAxis, const Dtk_dir &inVDirection, const Dtk_dir &inYDir=Dtk_dir())
Create Dtk_StandardRevolutionSurface.
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve(const Dtk_UInt32 &inDegree, const Dtk_tab< Dtk_Double64 > &inKnotsValues, const Dtk_tab< Dtk_UChar8 > &inKnotsMultiplicities, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >())
Dtk_SphericalSurface::_ComputeMultipleDerivative
Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_Hyperbola::Dtk_Hyperbola
Dtk_Hyperbola(const Dtk_Hyperbola &inToCopy)
Dtk_TransformedSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Point::Create
static Dtk_PointPtr Create(const Dtk_Double64 &inX, const Dtk_Double64 &inY, const Dtk_Double64 &inZ)
Dtk_NurbsCurve::Point
Dtk_pnt & Point(const Dtk_Size_t &inIndex)
Dtk_Parabola::GetDomain
Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
Dtk_StandardRevolutionSurface::GetXDirection
const Dtk_dir & GetXDirection() const
Give V origin for parametrisation.
Dtk_NurbsCurve::IsClosed
Dtk_bool IsClosed(Dtk_Double64 inTol=DTK_TOLERANCE) const
return DTK_TRUE if nurbs is closed
Dtk_ToroidalSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1429
Dtk_NurbsSurface::Split
Dtk_ErrorStatus Split(Dtk_Double64 inTrimDom[4], Dtk_Double64 inTolerance=DTK_TOLERANCE)
Dtk_OffsetSurface::GetOffset
Dtk_Double64 GetOffset() const
Dtk_Polyline::IsLine
Dtk_bool IsLine() const
return DTK_TRUE if polyline is a line DTK_FALSE otherwise
Dtk_Polyline::Create
static Dtk_PolylinePtr Create(const Dtk_Polyline &inPolylineToCopy)
constructors returning Smart pointers
Dtk_FilletSurface::GetConstantRadius
Dtk_Double64 GetConstantRadius() const
Dtk_UChar8
unsigned char Dtk_UChar8
Definition: define.h:698
Dtk_NurbsCurve::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Transform Curve.
Dtk_RuledSurface::GetSecondCurve
Dtk_CurvePtr GetSecondCurve() const
Dtk_LinearExtrusionSurface::~Dtk_LinearExtrusionSurface
virtual ~Dtk_LinearExtrusionSurface()
Dtk_NurbsSurface::GetUKnotValue
Dtk_Double64 GetUKnotValue(const Dtk_Size_t &inIndex) const
Dtk_SphericalSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_NurbsSurface::Create
static Dtk_NurbsSurfacePtr Create(const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnotsValues, const Dtk_tab< Dtk_Double64 > &inVKnotsValues, const Dtk_tab< Dtk_UChar8 > &inUKnotsMultiplicities, const Dtk_tab< Dtk_UChar8 > &inVKnotsMultiplicities, const Dtk_tab< Dtk_tab< Dtk_pnt > > &inControlPoints, const Dtk_tab< Dtk_tab< Dtk_Double64 > > &inWeights=Dtk_tab< Dtk_tab< Dtk_Double64 > >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE, const Dtk_UInt32 &inTargetUDegree=0, const Dtk_UInt32 &inTargetVDegree=0)
Dtk_NurbsCurve::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:202
Dtk_NurbsCurve::SetTypeBeforeConversion
void SetTypeBeforeConversion(const type_detk &inType)
Dtk_Hyperbola::Reverse
virtual void Reverse()
Reverse Curve.
Dtk_TransformedSurface::_ComputeMultipleDerivative
Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_NurbsSurface::Point
const Dtk_pnt & Point(const Dtk_Size_t &inUIndex, const Dtk_Size_t &inVIndex) const
Dtk_StandardRevolutionSurface::GetZDirection
const Dtk_dir & GetZDirection() const
GetZDirection.
Dtk_LinearExtrusionSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_RuledSurface::Dtk_RuledSurface
Dtk_RuledSurface(const Dtk_CurvePtr &inFirstCurve, const Dtk_CurvePtr &inSecondCurve)
Dtk_LinearExtrusionSurface::Create
static Dtk_LinearExtrusionSurfacePtr Create(const Dtk_CurvePtr &inExtrudedCurve, const Dtk_dir &inExtrusionAxis)
Create an infinite Dtk_LinearExtrusionSurface from a curve and a extrusion vector two curves.
Dtk_FilletSurface::GetParam2
Dtk_Double64 GetParam2() const
Dtk_NurbsCurve::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:194
Dtk_OffsetSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_Hyperbola::~Dtk_Hyperbola
virtual ~Dtk_Hyperbola()
Dtk_ToroidalSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_Parabola::DtkDynamicCast
static Dtk_Parabola * DtkDynamicCast(Dtk_Object *inObject)
Dtk_Ellipse::Create
static Dtk_EllipsePtr Create(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inMajorRadius, const Dtk_Double64 &inMinorRadius)
Dtk_StandardRevolutionSurface::~Dtk_StandardRevolutionSurface
virtual ~Dtk_StandardRevolutionSurface()
Dtk_ConicalSurface::Create
static Dtk_ConicalSurfacePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_Double64 &inFirstRadius, const Dtk_Double64 &inAngle, const Dtk_dir &inYDir=Dtk_dir())
Create an infinite Cone.
Dtk_NurbsCurve::_ComputeAnyDerivativeExtended
Dtk_ErrorStatus _ComputeAnyDerivativeExtended(Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
Compute any derivative for an U value outside of the curve definition.
Dtk_RuledSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_LinearExtrusionSurface::IsVPeriodic
virtual Dtk_bool IsVPeriodic() const
Return DTK_TRUE If Periodic following V parameter.
Dtk_NurbsCurve::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_ConicalSurface::Dtk_ConicalSurface
Dtk_ConicalSurface(const Dtk_ConicalSurface &s)
Dtk_TransformedSurface::DtkDynamicCast
static Dtk_TransformedSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_pnt
This is a mathematical point class.
Definition: dtk_pnt.hpp:22
type_detk
type_detk
Definition: define.h:32
Dtk_Hyperbola::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:699
Dtk_NurbsCurve::GetDegree
Dtk_UInt32 GetDegree() const
return degree
Dtk_StandardRevolutionSurface::GetAxisPosition
const Dtk_pnt & GetAxisPosition() const
Get origin
Dtk_Curve::IsClosed
virtual Dtk_bool IsClosed(Dtk_Double64 inTol=DTK_TOLERANCE) const
return True if Curve is closed
Dtk_Curve::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const =0
Return First point.
Dtk_Surface::Clone
virtual Dtk_Object * Clone()=0
DTK_TYPE_TRANSFORMED_SURFACE
@ DTK_TYPE_TRANSFORMED_SURFACE
Definition: define.h:499
Dtk_ConicalSurface::Dtk_ConicalSurface
Dtk_ConicalSurface()
Dtk_Surface::GetTrimUVBox
Dtk_ErrorStatus GetTrimUVBox(Dtk_Double64 outTrimValues[]) const
Get Surface Trim Box : Umin = outTrimValues[0] Umax = outTrimValues[1] Vmin = outTrimValues[2] Vmax =...
Dtk_RevolutionSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_FilletSurface::Dtk_FilletSurface
Dtk_FilletSurface(const Dtk_FilletSurface &s)
Dtk_ToroidalSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_Parabola::Create
static Dtk_ParabolaPtr Create(const Dtk_Parabola &inToCopy)
Dtk_Line::Dtk_Line
Dtk_Line(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection)
constructor
DTK_TYPE_CYLINDRICAL_SURFACE
@ DTK_TYPE_CYLINDRICAL_SURFACE
Definition: define.h:93
Dtk_Polyline::Dtk_Polyline
Dtk_Polyline()
Default constructor.
Dtk_Line::Reverse
virtual void Reverse()
Reverse Curve.
Dtk_Parabola::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_Surface
Dtk_Surface is a geometrical entity representing a surface. Some type of surface are unlimited such a...
Definition: util_geom_dtk.hpp:757
Dtk_LinearExtrusionSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_OffsetSurface::PrepareTransfo
virtual void PrepareTransfo()
Dtk_OffsetSurface::DtkDynamicCast
static Dtk_OffsetSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_RevolutionSurface::Dtk_RevolutionSurface
Dtk_RevolutionSurface(const Dtk_CurvePtr &inRevolvedCurve, const Dtk_pnt &inAxisposition, const Dtk_dir &inRevolutionAxis, const Dtk_dir &inUDirection, const Dtk_dir &inYDir)
Dtk_Surface::Dtk_Surface
Dtk_Surface()
Dtk_CylindricalSurface::Dtk_CylindricalSurface
Dtk_CylindricalSurface()
Dtk_NurbsCurve::ToNurbs
virtual Dtk_NurbsCurvePtr ToNurbs() const
Convert Curve to nurbs.
Dtk_Line::get_type_detk
type_detk get_type_detk() const
Dtk_Conic
This is the Conic Class. It is part of the Dtk_Curve entity.
Definition: util_geom_dtk.hpp:504
Dtk_CylindricalSurface::GetDomain
Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_NurbsCurve::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Return First point.
Dtk_TransformedSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_StandardRevolutionSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_Curve::PDtk_StoreDataCurve
friend void PDtk_StoreDataCurve(void *, Dtk_CurvePtr &)
Dtk_PlaneSurface::GetYDirection
Dtk_dir GetYDirection() const
Dtk_StandardRevolutionSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_NurbsSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_NurbsSurface::GetNumKnotsU
Dtk_Size_t GetNumKnotsU() const
Dtk_Ellipse::GetMajorRadius
Dtk_Double64 GetMajorRadius() const
Dtk_StandardRevolutionSurface::GetRadius
Dtk_Double64 GetRadius() const
Get Radius at origin.
Dtk_Parabola::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Curve::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_Surface::ComputeUVto3DSecondDerivative
Dtk_ErrorStatus ComputeUVto3DSecondDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, const Dtk_dir &inUVFirstDerivative, const Dtk_dir &inUVSecondDerivative, Dtk_dir &out3DSecondDerivative) const
Compute 3D second derivative on UV point according to UV derivatives.
Dtk_Conic::GetXDirection
const Dtk_dir & GetXDirection() const
Dtk_NurbsSurface::GetNumKnotsV
Dtk_Size_t GetNumKnotsV() const
Dtk_TransformedSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_LinearExtrusionSurface::GetExtrusionAxis
const Dtk_dir & GetExtrusionAxis() const
Dtk_FilletSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1610
Dtk_PlaneSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:959
Dtk_LinearExtrusionSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_PlaneSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:957
Dtk_NurbsCurve::IsLine
Dtk_bool IsLine() const
return DTK_TRUE if nurbs is line
Dtk_PlaneSurface::Normalize
Dtk_ErrorStatus Normalize()
Dtk_NurbsCurve::ComputeUPointDir
Dtk_ErrorStatus ComputeUPointDir(const Dtk_Double64 &inUparameter, Dtk_pnt &outPoint, Dtk_dir &outDir) const
Compute point and dir on U parameter.
Dtk_Curve::ComputeLength
Dtk_Double64 ComputeLength()
return curve Length
Dtk_Parabola::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_Surface::Dtk_Surface
Dtk_Surface(const Dtk_Surface &s)
Dtk_Line::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_Ellipse::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_TransformedSurface::get_type_detk
type_detk get_type_detk() const
Dtk_Conic::GetYDirection
Dtk_dir GetYDirection() const
Get Y direction of Conic.
Dtk_RevolutionSurface::get_type_detk
type_detk get_type_detk() const
Dtk_MeshSurface
This is the Mesh Surface Class.
Definition: util_geom_dtk.hpp:1721
Dtk_PlaneSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_TransformedSurface::Dtk_TransformedSurface
Dtk_TransformedSurface()
Dtk_Polyline::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_NurbsSurface::GetUnpackedVKnot
Dtk_Double64 * GetUnpackedVKnot() const
Dtk_SphericalSurface::DtkDynamicCast
static Dtk_SphericalSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_Surface::DtkDynamicCast
static Dtk_Surface * DtkDynamicCast(Dtk_Object *s)
Dtk_Polyline::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_MeshSurface::GetMesh
Dtk_MeshPtr GetMesh() const
Get the Dtk_Mesh corresponding to MeshSurface.
Dtk_tab< Dtk_pnt >
Dtk_CylindricalSurface::Dtk_CylindricalSurface
Dtk_CylindricalSurface(const Dtk_CylindricalSurface &s)
DTK_TYPE_FILLET_SURFACE
@ DTK_TYPE_FILLET_SURFACE
Definition: define.h:116
Dtk_Ellipse::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:577
Dtk_ConicalSurface::GetRadius
Dtk_Double64 GetRadius() const
Dtk_Polyline::get_type_detk
type_detk get_type_detk() const
Dtk_LinearExtrusionSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_FilletSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1608
Dtk_OffsetSurface::Create
static Dtk_OffsetSurfacePtr Create(const Dtk_SurfacePtr &inSurf, const Dtk_Double64 &inOffset)
Create an offset surface following surface normal.
Dtk_ConicalSurface::Dtk_ConicalSurface
Dtk_ConicalSurface(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inYDirection, const Dtk_dir &inUDirection, const Dtk_Double64 &inRadius, const Dtk_Double64 &inAngle)
Dtk_Hyperbola::Create
static Dtk_HyperbolaPtr Create(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inSemiAxis, const Dtk_Double64 &inSemiImageAxis)
Dtk_NurbsCurve::GetKnotValue
Dtk_Double64 GetKnotValue(const Dtk_Size_t &inIndex) const
return knot value at inIndex place
Dtk_Ellipse::~Dtk_Ellipse
virtual ~Dtk_Ellipse()
Dtk_Parabola::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_Conic::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:506
Dtk_Parabola::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:640
Dtk_ConicalSurface::DtkDynamicCast
static Dtk_ConicalSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_OffsetSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1561
Dtk_Curve::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:90
Dtk_Line::_Private
Dtk_Handle * _Private
Handle
Definition: util_geom_dtk.hpp:426
Dtk_Ellipse::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_Line::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_Ellipse::Dtk_Ellipse
Dtk_Ellipse(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inMajorRadius, const Dtk_Double64 &inMinorRadius)
Dtk_NurbsSurface::IsVPeriodic
virtual Dtk_bool IsVPeriodic() const
return DTK_TRUE if nurbs is periodic in V
Dtk_Point
This is the POINT Class. It is part of the Dtk_Point entity.
Definition: util_geom_dtk.hpp:21
Dtk_FilletSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_CylindricalSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1311
DTK_TYPE_ELLIPSE
@ DTK_TYPE_ELLIPSE
Definition: define.h:61
Dtk_RuledSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_Parabola::Reverse
virtual void Reverse()
Reverse Curve.
Dtk_NurbsCurve::DtkDynamicCast
static Dtk_NurbsCurve * DtkDynamicCast(Dtk_Object *inObject)
Dtk_RevolutionSurface::Normalize
Dtk_ErrorStatus Normalize()
Dtk_Curve::GetTrimStartPoint
Dtk_pnt GetTrimStartPoint() const
Return first trim point.
Dtk_Curve::InverseTrim
virtual Dtk_ErrorStatus InverseTrim()
Dtk_Ellipse::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:583
Dtk_RuledSurface::Dtk_RuledSurface
Dtk_RuledSurface()
Dtk_Hyperbola::GetSemiAxis
Dtk_Double64 GetSemiAxis() const
Dtk_NurbsCurve::GetUnpackedKnot
Dtk_Double64 * GetUnpackedKnot() const
util_geom_ptr_dtk.hpp
Dtk_NurbsCurve::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_Point::get_type_detk
type_detk get_type_detk() const
Return type.
Dtk_SphericalSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_SphericalSurface::Dtk_SphericalSurface
Dtk_SphericalSurface(const Dtk_SphericalSurface &s)
DTK_TYPE_OFFSET_SURFACE
@ DTK_TYPE_OFFSET_SURFACE
Definition: define.h:115
Dtk_Line::Transform
virtual Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
transform Line with inTransformation
Dtk_StandardRevolutionSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1114
Dtk_Parabola::get_type_detk
type_detk get_type_detk() const
Dtk_Surface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const =0
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_LinearExtrusionSurface::Normalize
Dtk_ErrorStatus Normalize()
DTK_TYPE_RULED_SURFACE
@ DTK_TYPE_RULED_SURFACE
Definition: define.h:100
Dtk_StandardRevolutionSurface::Create
static Dtk_StandardRevolutionSurfacePtr Create(const Dtk_StandardRevolutionSurface &inSurfToCopy)
Dtk_StandardRevolutionSurface::Dtk_StandardRevolutionSurface
Dtk_StandardRevolutionSurface()
Dtk_Polyline::ComputeBoundingBox
Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, Dtk_bool inMorePrecise=0)
Compute Bounding Box.
Dtk_OffsetSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_Ellipse::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_Hyperbola::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outU) const
Compute U parameter from point.
Dtk_PlaneSurface
This is the Plane Surface Class. U parametrisation : [-infini - +infini] : 0 is inOrigin and unit vec...
Definition: util_geom_dtk.hpp:955
Dtk_Curve::IsPeriodic
virtual Dtk_bool IsPeriodic() const
return True if Curve is periodic
Dtk_CylindricalSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_Ellipse::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:579
Dtk_NurbsSurface
This is the Nurbs Surface Class. It is part of the Dtk_NurbsSurface entity.
Definition: util_geom_dtk.hpp:829
Dtk_Parabola::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_NurbsSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_Ellipse::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Return First point.
Dtk_NurbsSurface::GetVDegree
Dtk_UInt32 GetVDegree() const
DTK_TYPE_TOROIDAL_SURFACE
@ DTK_TYPE_TOROIDAL_SURFACE
Definition: define.h:96
Dtk_NurbsSurface::_ComputeMultipleDerivative
virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_Object
Definition: dtk_object.hpp:8
Dtk_Surface::DeleteCorrespondingNurbs
void DeleteCorrespondingNurbs()
Dtk_SphericalSurface::~Dtk_SphericalSurface
virtual ~Dtk_SphericalSurface()
Dtk_SphericalSurface::Dtk_SphericalSurface
Dtk_SphericalSurface(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inYDir, const Dtk_dir &inUDirection, const Dtk_Double64 &inRadius)
Dtk_Line::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_Polyline::Reverse
virtual void Reverse()
Reverse Curve.
Dtk_RevolutionSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_RevolutionSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_NurbsCurve::SetIsClosed
void SetIsClosed(const Dtk_bool &inIsClosed)
sets is_closed field to DTK_TRUE or DTK_FALSE
Dtk_TransformedSurface
Definition: util_geom_dtk.hpp:1670
Dtk_Conic::Clone
virtual Dtk_Object * Clone()=0
Dtk_NurbsSurface::Create
static Dtk_NurbsSurfacePtr Create(const Dtk_tab< Dtk_SurfacePtr > &inSurfacesToMerge, Dtk_Double64 stichtol=DTK_TOLERANCE)
Dtk_MeshSurface::Create
static Dtk_MeshSurfacePtr Create(const std::vector< Dtk_pnt > &inP, const std::vector< Dtk_UInt32 > &index, const std::vector< Dtk_dir > &inD, const std::vector< Dtk_UInt32 > &aindex)
Dtk_NurbsSurface::Dtk_NurbsSurface
Dtk_NurbsSurface(const Dtk_tab< Dtk_SurfacePtr > &inSurfacesToMerge, Dtk_Double64 stichtol)
Dtk_FilletSurface::GetAdjacentCurve
Dtk_CurvePtr GetAdjacentCurve(const Dtk_Size_t &inIndex) const
Dtk_ToroidalSurface::IsVPeriodic
virtual Dtk_bool IsVPeriodic() const
Return DTK_TRUE If Periodic following V parameter.
Dtk_FilletSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_NurbsSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:833
Dtk_Line::GetOrigin
Dtk_pnt GetOrigin() const
return origin of line
Dtk_Line::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outU) const
Compute U parameter from point.
Dtk_SphericalSurface::Dtk_SphericalSurface
Dtk_SphericalSurface()
Dtk_ConicalSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_Point::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Transform Point.
Dtk_ToroidalSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Curve::GetTrimUMin
Dtk_Double64 GetTrimUMin() const
Get start Trim parameter.
Dtk_ConicalSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_NurbsCurve::~Dtk_NurbsCurve
virtual ~Dtk_NurbsCurve()
Dtk_StandardRevolutionSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1110
Dtk_ToroidalSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1427
Dtk_LinearExtrusionSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_Surface::_HasInternalNurbs
Dtk_bool _HasInternalNurbs() const
Dtk_RuledSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
DTK_TYPE_HYPERBOLA
@ DTK_TYPE_HYPERBOLA
Definition: define.h:62
Dtk_Point::Create
static Dtk_PointPtr Create(const Dtk_Point &inToCopy)
constructors returning Smart pointers
Dtk_TransformedSurface::Dtk_TransformedSurface
Dtk_TransformedSurface(const Dtk_SurfacePtr &inSurf, const Dtk_transfo &inTransformation)
Dtk_NurbsCurve::GetTypeBeforeConversion
type_detk GetTypeBeforeConversion() const
Dtk_RuledSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1252
Dtk_Surface::Create
static Dtk_SurfacePtr Create(const Dtk_Surface &s)
Create Surface by copy.
Dtk_Line
This is the Infinite Line Class. It is part of the Dtk_Curve entity 0.0 parametrisation is first poin...
Definition: util_geom_dtk.hpp:423
DTK_TYPE_CONICAL_SURFACE
@ DTK_TYPE_CONICAL_SURFACE
Definition: define.h:94
Dtk_Hyperbola::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
transform
Dtk_Curve::IsTrimmed
Dtk_bool IsTrimmed() const
Return DTK_TRUE if Curve Is trimmed by point or parameter value.
Dtk_Surface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int extendtype) const
Dtk_Conic::Dtk_Conic
Dtk_Conic(const Dtk_Conic &inConicToCopy)
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve(const Dtk_UInt32 &inDegree, const Dtk_tab< Dtk_pnt > &inControlPoints)
Dtk_RuledSurface::~Dtk_RuledSurface
virtual ~Dtk_RuledSurface()
Dtk_NurbsCurve::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
Compute any derivative for an U value.
Dtk_Point::DtkDynamicCast
static Dtk_Point * DtkDynamicCast(Dtk_Object *inObject)
Dtk_PlaneSurface::DtkDynamicCast
static Dtk_PlaneSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_CylindricalSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_Parabola::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outU) const
Compute U parameter from point.
Dtk_RuledSurface::GetFirstCurve
Dtk_CurvePtr GetFirstCurve() const
Dtk_Surface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Ellipse::Reverse
virtual void Reverse()
Reverse Curve.
Dtk_NurbsSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_CylindricalSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_LinearExtrusionSurface::Dtk_LinearExtrusionSurface
Dtk_LinearExtrusionSurface(const Dtk_LinearExtrusionSurface &s)
DTK_TYPE_REVOLUTION_SURFACE
@ DTK_TYPE_REVOLUTION_SURFACE
Definition: define.h:496
Dtk_StandardRevolutionSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_Surface::IsTrimmed
Dtk_bool IsTrimmed() const
Return DTK_TRUE if Surface Is trimmed by parameter value.
Dtk_OffsetSurface::_ComputeMultipleDerivative
virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_Polyline::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outU) const
Compute U parameter from point.
Dtk_RevolutionSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1028
Dtk_Curve::ComputeUDir
virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64 &inU, Dtk_dir &outDir) const
Compute dir on U parameter.
Dtk_ConicalSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1368
Dtk_RevolutionSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1022
Dtk_Curve::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Transform Curve.
Dtk_dir
This is a mathematical direction class.
Definition: dtk_dir.hpp:15
Dtk_CylindricalSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1315
Dtk_SphericalSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1496
Dtk_NurbsSurface::SplitAt
Dtk_ErrorStatus SplitAt(const Dtk_Double64 &inParameter, const Dtk_bool &inUSplit, const Dtk_bool &inKeepLeft, Dtk_NurbsSurfacePtr &outOtherPart, Dtk_Double64 inTolerance=DTK_TOLERANCE)
Dtk_NurbsSurface::Create
static Dtk_NurbsSurfacePtr Create(const Dtk_NurbsSurface &s)
Dtk_MeshSurface::get_type_detk
type_detk get_type_detk() const
Dtk_NurbsCurve
This is the Nurbs Class. It is part of the Dtk_Curve entity.
Definition: util_geom_dtk.hpp:190
Dtk_Point::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dump entity.
Dtk_RevolutionSurface::SetStartAngle
Dtk_ErrorStatus SetStartAngle(Dtk_Double64 inAngle)
Dtk_NurbsSurface::IsUPeriodic
virtual Dtk_bool IsUPeriodic() const
return DTK_TRUE if nurbs is periodic in U
Dtk_ConicalSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1374
Dtk_LinearExtrusionSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1199
Dtk_Curve::ComputeOffset
Dtk_NurbsCurvePtr ComputeOffset(Dtk_Double64 inOffset, Dtk_dir inOffsetDirection)
Compute offset curve and convert it to nurbs.
Dtk_NurbsCurve::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_StandardRevolutionSurface::Dtk_StandardRevolutionSurface
Dtk_StandardRevolutionSurface(const Dtk_CurvePtr &inRevolvedCurve, const Dtk_pnt &inAxisposition, const Dtk_dir &inRevolutionAxis, const Dtk_dir &inVDirection, const Dtk_dir &inYDir)
Dtk_Conic::GetOriginDirection
const Dtk_dir & GetOriginDirection() const
Get Origin of parametrisation of Conic (inXdir on schema)
Dtk_StandardRevolutionSurface::_ComputeMultipleDerivative
virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_Polyline
This is the Polyline and Segment Line Class. It is part of the Dtk_Curve entity.
Definition: util_geom_dtk.hpp:338
Dtk_PlaneSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_StandardRevolutionSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_Polyline::AddPoint
void AddPoint(const Dtk_pnt &inNewPoint)
Add point to polyline.
Dtk_NurbsCurve::IsBezier
Dtk_bool IsBezier() const
return DTK_TRUE if bezier
Dtk_OffsetSurface::_ComputeMultipleDerivative_withbasis
Dtk_ErrorStatus _ComputeMultipleDerivative_withbasis(const Dtk_Double64 &inUvalue, const Dtk_Double64 &inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, Dtk_dir *outdirsbasis, int exttype) const
Dtk_OffsetSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Curve::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const =0
Get Curve Parametrisation.
Dtk_Curve::ComputeOrientedBoundingBox
virtual Dtk_ErrorStatus ComputeOrientedBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, const Dtk_transfo &inLocal)
Compute Oriented Bounding Box.
Dtk_StandardRevolutionSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_NurbsCurve::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_NurbsSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Surface::ComputeBoundingBox
Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax) const
Set Surface Parametrisation : Umin = inDomain[0] Umax = inDomain[1] Vmin = inDomain[2] Vmax = inDomai...
Dtk_Hyperbola::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_NurbsCurve &s)
constructors returning Smart pointers
DTK_TYPE_LINEAR_EXTRUSION_SURFACE
@ DTK_TYPE_LINEAR_EXTRUSION_SURFACE
Definition: define.h:498
Dtk_RuledSurface::Dtk_RuledSurface
Dtk_RuledSurface(const Dtk_RuledSurface &s)
Dtk_TransformedSurface::GetTransformation
Dtk_transfo GetTransformation() const
Dtk_RevolutionSurface::Create
static Dtk_RevolutionSurfacePtr Create(const Dtk_CurvePtr &inRevolvedCurve, const Dtk_pnt &inAxisposition, const Dtk_dir &inRevolutionAxis, const Dtk_dir &inUDirection, const Dtk_dir &inYDir=Dtk_dir())
OBSOLETE Create Dtk_RevolutionSurface.
Dtk_Entity
Definition: util_ent_dtk.hpp:336
Dtk_CylindricalSurface::Create
static Dtk_CylindricalSurfacePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_Double64 &inRadius, const Dtk_dir &inYDirection=Dtk_dir())
Create an infinite cylinder.
Dtk_OffsetSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_FilletSurface::GetNumAdjacentSurfaces
Dtk_Size_t GetNumAdjacentSurfaces() const
Dtk_LinearExtrusionSurface::GetExtrudedCurve
Dtk_CurvePtr GetExtrudedCurve() const