DATAKIT API  V2025.4
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& in );
47  static Dtk_PointPtr Create(const Dtk_pnt& in );
49  static Dtk_PointPtr Create(const Dtk_Double64 & inX, const Dtk_Double64 & inY, const Dtk_Double64 & inZ);
50 
51  //methods
55 
60 
62  virtual Dtk_ErrorStatus _Store(void*);
63  virtual Dtk_Size_t GetSize() const;
64 };
65 
66 /*************************************** CURVES **********************************/
67 
85 
86 class Dtk_Curve : public Dtk_Entity
87 {
88 protected:
89  struct Dtk_Handle; // Not defined here
90  Dtk_Handle *_Private; // Handle
91  enum { _typeID = DTK_TYPE_CURVE };
93  Dtk_Curve(const Dtk_Curve& s);
94  virtual Dtk_Object* Clone() = 0;
95 
96 private:
97  void _Init();
98  void _Reset();
99  friend class Dtk_SmartPtr<Dtk_Curve>;
100 
101 protected:
102  void _Copy(const Dtk_Curve& s);
103 
104 public:
105  virtual ~Dtk_Curve();
107  int DtkDynamicType(const int& inId);
108  static Dtk_Curve * DtkDynamicCast(Dtk_Object * inObject);
109 
110  //methods
112  void SetTrimPoints(const Dtk_pnt& inStartPoint,const Dtk_pnt& inEndPoint);
122  void SetDimension(const Dtk_Size_t& inDimension);
124  virtual Dtk_ErrorStatus SetTrimmingParameters(const Dtk_Double64& inUmin,const Dtk_Double64& inUmax);
135  virtual Dtk_bool IsPeriodic() const;
139  Dtk_NurbsCurvePtr ComputeOffset(Dtk_Double64 inOffset, Dtk_dir inOffsetDirection);
140 
141  //virtual methods
143  virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax,Dtk_bool inMorePrecise = 0);
145  virtual Dtk_ErrorStatus ComputeOrientedBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax, const Dtk_transfo& inLocal);
147  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const = 0;
151  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const =0 ;
153  virtual Dtk_NurbsCurvePtr ToNurbs()const =0 ;
155  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const =0 ;
157  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const =0 ;
159  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
161  virtual Dtk_ErrorStatus ComputeUPointDir(const Dtk_Double64& inU,Dtk_pnt& outPoint,Dtk_dir& outDir)const ;
163  virtual Dtk_pnt ComputeStartPoint()const =0 ;
165  virtual Dtk_pnt ComputeEndPoint()const =0 ;
167  virtual void Reverse()=0 ;
169  virtual void Normalize();
170 
173  // \brief To Dump Curve
174  virtual Dtk_ErrorStatus _Store(void*);
175  friend void PDtk_StoreDataCurve(void*,Dtk_CurvePtr&);
176  virtual Dtk_Size_t GetSize() const;
178 
179  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
180 };
181 
187 class Dtk_NurbsCurve : public Dtk_Curve
188 {
189 protected:
190  struct Dtk_Handle; // Not defined here
191  Dtk_Handle *_Private; // Handle
195  virtual ~Dtk_NurbsCurve();
196  Dtk_NurbsCurve(const Dtk_UInt32& inDegree,const Dtk_tab<Dtk_pnt> &inControlPoints);
197  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>());
198  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>());
199  Dtk_NurbsCurve(const Dtk_tab<Dtk_CurvePtr> &inCurvesToMerge, Dtk_Double64 stichtol /*= DTK_TOLERANCE*/, Dtk_bool LengthParameter /* DTK_FALSE*/ );
200  inline virtual Dtk_Object* Clone() { return new Dtk_NurbsCurve(*this); }
201 private:
202  Dtk_ErrorStatus _ComputeUPointDirClamp(const Dtk_Double64& inUparameter,Dtk_pnt& outPoint,Dtk_dir& outDir)const;
203  void _SetNodalVector(const Dtk_tab<Dtk_Double64>& inKnotsVector);
204  void _SetNodalVector(const Dtk_Double64 * inNodalVector,const Dtk_Size_t &inSize);
205  void _AddKnot(const Dtk_UInt32& inKnotMultiplicity,const Dtk_Double64& inKnotValue);
206  void _SetPointsArray(const Dtk_tab<Dtk_pnt> &inPointArray);
207  void _SetPointsArray(Dtk_pnt *inPoints,const Dtk_Size_t &inSize);
208  void _SetWeight(const Dtk_Size_t& inIndex,Dtk_Double64 inWeight) ;
209  void _SetWeightsArray(const Dtk_tab<Dtk_Double64>& inWeightArray) ;
210  void _SetWeightsArray(Dtk_Double64 * inWeights,const Dtk_Size_t &inSize) ;
211  void _Init();
212  void _Copy(const Dtk_NurbsCurve& s);
213  void _Reset();
214  friend class Dtk_SmartPtr<Dtk_NurbsCurve>;
215 public:
216  Dtk_ErrorStatus _KnotInsertion(const Dtk_Double64 &inUparameter,const Dtk_Size_t &inOccurence,Dtk_Double64 inTolerance=DTK_TOLERANCE);
217  Dtk_ErrorStatus _DegreeElevation(const Dtk_Size_t &inDegreeElevation);
218  int _KnotRemoval(const Dtk_Double64 &inU,const int &inNum,const Dtk_Double64 &inTolerance);
219 
220  //downcasting
221  int DtkDynamicType(const int& inId);
223 
224  //constructors
228  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>());
233  static Dtk_NurbsCurvePtr Create(const Dtk_NurbsCurvePtr& s,const Dtk_tab<Dtk_Double64>& inKnotsValues,const Dtk_tab<Dtk_UChar8>& inKnotsMultiplicities);
235  static Dtk_NurbsCurvePtr Create(const Dtk_tab<Dtk_CurvePtr> &inCurvesToMerge, Dtk_Double64 stichtol = DTK_TOLERANCE, Dtk_bool LengthParameter = DTK_FALSE );
236 
237 
238  //methods
244  Dtk_Double64 GetKnotValue(const Dtk_Size_t& inIndex) const;
250  Dtk_ErrorStatus Reparam(const Dtk_Double64 &inUmin,const Dtk_Double64 &inUmax);
252  const Dtk_pnt& Point(const Dtk_Size_t& inIndex) const;
253  Dtk_pnt& Point(const Dtk_Size_t& inIndex);
255  Dtk_Double64 GetWeight(const Dtk_Size_t& inIndex) const;
256 
264  Dtk_bool IsLine() const;
268  virtual Dtk_bool IsPeriodic() const;
269 
271  void SetIsPeriodic(const Dtk_bool &inIsPeriodic);
273  void SetIsClosed(const Dtk_bool &inIsClosed);
276 
277  Dtk_ErrorStatus ComputeUPointDir(const Dtk_Double64& inUparameter,Dtk_pnt& outPoint,Dtk_dir& outDir)const;
278  Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax, Dtk_bool inMorePrecise = 0);
279 
281  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const;
282 
284  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
286  virtual Dtk_NurbsCurvePtr ToNurbs()const ;
288  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
290  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
292  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outParameter)const;
294  virtual Dtk_pnt ComputeStartPoint() const;
296  virtual Dtk_pnt ComputeEndPoint() const;
298  virtual void Reverse();
299 
301 
302 
307  void SetTypeBeforeConversion(const type_detk& inType);
309 
310  // \brief To Dump Curve
311  virtual Dtk_ErrorStatus _Store(void*);
312  virtual Dtk_Size_t GetSize() const;
313 
320  Dtk_ErrorStatus _ComputeAnyDerivativeExtended(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
326  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
327  Dtk_Double64 _ComputeWeight(Dtk_Double64 inUvalue, int exttype) const;
328 
330 };
331 
337 class Dtk_Polyline : public Dtk_Curve
338 {
339 protected:
341  struct Dtk_Handle;
343  Dtk_Handle *_Private;
347  Dtk_Polyline(const Dtk_Polyline& inPolylineToCopy);
349  Dtk_Polyline(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
350  inline virtual Dtk_Object* Clone() { return new Dtk_Polyline(*this); }
352  virtual ~Dtk_Polyline();
353 private:
355  void _Init();
357  void _Copy(const Dtk_Polyline& inPolylineToCopy);
359  void _Reset();
361  friend class Dtk_SmartPtr<Dtk_Polyline>;
362 public:
363 
364  //downcasting
365  int DtkDynamicType(const int& inId);
366  static Dtk_Polyline * DtkDynamicCast(Dtk_Object * inObjectToCast);
367 
373  static Dtk_PolylinePtr Create(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
374 
375  //methods
377  Dtk_bool IsLine() const;
381  void AddPoint(const Dtk_pnt& inNewPoint);
382  void AddPoint(const Dtk_Double64& inX,const Dtk_Double64& inY,const Dtk_Double64& inZ=0.0);
383 
385  const Dtk_pnt& Point(const Dtk_Size_t& inIndex) const;
386  Dtk_pnt& Point(const Dtk_Size_t& inIndex);
387 
388  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
389  virtual Dtk_NurbsCurvePtr ToNurbs()const ;
391  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const;
392  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
394  virtual Dtk_pnt ComputeStartPoint() const;
395  virtual Dtk_pnt ComputeEndPoint() const;
396  virtual void Reverse();
397  Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax, Dtk_bool inMorePrecise = 0);
398  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff,Dtk_dir &outdir,int exttype) const;
399 
400 
402  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const;
403 
407 
408  virtual Dtk_ErrorStatus _Store(void*);
409  virtual Dtk_Size_t GetSize() const;
410 };
411 
418 class Dtk_Line : public Dtk_Curve
419 {
420 protected:
422  struct Dtk_Handle;
424  Dtk_Handle *_Private;
426  enum { _typeID = DTK_TYPE_LINE };
428  Dtk_Line(const Dtk_Line& inLineToCopy);
429  Dtk_Line(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection);
430  Dtk_Line(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
431  inline virtual Dtk_Object* Clone() { return new Dtk_Line(*this); }
433  virtual ~Dtk_Line();
434 private:
436  void _Init();
438  void _Copy(const Dtk_Line& inLineToCopy);
440  void _Reset();
442  friend class Dtk_SmartPtr<Dtk_Line>;
443 public:
444 
445  //downcasting
446  int DtkDynamicType(const int& inId);
447  static Dtk_Line * DtkDynamicCast(Dtk_Object * inObjectToCast);
448 
450  static Dtk_LinePtr Create(const Dtk_Line& in);
452  static Dtk_LinePtr Create(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
454  static Dtk_LinePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection);
455 
456  //methods
461 
462  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
463  virtual Dtk_NurbsCurvePtr ToNurbs()const ;
465  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const;
466  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
468  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
469  virtual Dtk_pnt ComputeStartPoint() const;
470  virtual Dtk_pnt ComputeEndPoint() const;
471  virtual void Reverse();
472  virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax,Dtk_bool inMorePrecise = 0);
473 
474 
476  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const;
477 
481  virtual void Normalize();
482 
484 
485  virtual Dtk_ErrorStatus _Store(void*);
486  virtual Dtk_Size_t GetSize() const;
487  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
488 };
489 
490 
496 class Dtk_Conic : public Dtk_Curve
497 {
498 protected:
499  struct Dtk_Handle; // Not defined here
500  Dtk_Handle *_Private; // Handle
501  enum { _typeID = DTK_TYPE_CONIC };
503  Dtk_Conic(const Dtk_Conic& inConicToCopy);
504 // 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);
505 // 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,
506 // const Dtk_pnt &inCenter, const Dtk_dir &inUOrigin, const Dtk_dir &inNormal);
507  virtual Dtk_Object* Clone() = 0;
508  virtual ~Dtk_Conic();
509 private:
510  void _Init();
511  void _Copy(const Dtk_Conic& inConicToCopy);
512  void _Reset();
513  Dtk_ErrorStatus _SetCenterPoint(const Dtk_pnt& inCenterPoint);
514  Dtk_ErrorStatus _SetCenterPoint(const Dtk_Double64& inXCenterPoint,const Dtk_Double64& inYCenterPoint,const Dtk_Double64& inZCenterPoint);
515  Dtk_ErrorStatus _SetNormalDirection(const Dtk_dir& inNormalDirection);
516  Dtk_ErrorStatus _SetOriginDirection(const Dtk_dir& inOriginDirection);
517 
518  friend class Dtk_SmartPtr<Dtk_Conic>;
519 public:
520 
521  //downcasting
522  int DtkDynamicType(const int& inId);
523  static Dtk_Conic * DtkDynamicCast(Dtk_Object * inObject);
524 
525  //CreateCopy{in}
526  static Dtk_ConicPtr Create(const Dtk_Conic& in);
527 // 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);
528 // 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,
529 // const Dtk_pnt &inCenter, const Dtk_dir &inUOrigin, const Dtk_dir &inNormal);
530 
531  //methods
533  const Dtk_pnt& GetCenterPoint() const;
534 
536  const Dtk_dir& GetNormalDirection() const;
537  const Dtk_dir& GetZDirection() const;
538 
540  const Dtk_dir& GetOriginDirection() const;
541  const Dtk_dir& GetXDirection() const;
542 
545 
547  virtual Dtk_NurbsCurvePtr ToNurbs()const;
548 
550 
554 
555  virtual Dtk_ErrorStatus _Store(void*);
556  virtual Dtk_Size_t GetSize() const;
557 };
558 
566 class Dtk_Ellipse : public Dtk_Conic
567 {
568 protected:
569  struct Dtk_Handle; // Not defined here
570  Dtk_Handle *_Private; // Handle
573  Dtk_Ellipse(const Dtk_Ellipse& inEllipseToCopy);
574  Dtk_Ellipse(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius);
575  inline virtual Dtk_Object* Clone() { return new Dtk_Ellipse(*this); }
576  virtual ~Dtk_Ellipse();
577 private:
578  void _Init();
579  void _Copy(const Dtk_Ellipse& inEllipseToCopy);
580  void _Reset();
581  Dtk_ErrorStatus _SetRadius(const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius);
582  Dtk_ErrorStatus _SetRadius(const Dtk_Double64& inRadius);
583  friend class Dtk_SmartPtr<Dtk_Ellipse>;
584 public:
585 
586  //downcasting
587  int DtkDynamicType(const int& inId);
588  static Dtk_Ellipse * DtkDynamicCast(Dtk_Object * inObject);
589 
591  static Dtk_EllipsePtr Create(const Dtk_Ellipse& in );
593  static Dtk_EllipsePtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius);
595  static Dtk_EllipsePtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inRadius);
596 
597  //methods
601 
602 
605  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
606  // virtual Dtk_NurbsCurvePtr ToNurbs()const ;
607  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
609  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
611  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const ;
613  virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax,Dtk_bool inMorePrecise = 0);
614 
615 
616  virtual Dtk_pnt ComputeStartPoint() const;
617  virtual Dtk_pnt ComputeEndPoint() const;
618  virtual void Reverse();
619 
620 
621 
625 
626  virtual Dtk_ErrorStatus _Store(void*);
627  virtual Dtk_Size_t GetSize() const;
628  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
629 };
630 
632 class Dtk_Parabola : public Dtk_Conic
633 {
634 protected:
635  struct Dtk_Handle; // Not defined here
636  Dtk_Handle *_Private; // Handle
639  Dtk_Parabola(const Dtk_Parabola& inToCopy);
640  Dtk_Parabola(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inMajorRadius);
641  inline virtual Dtk_Object* Clone() { return new Dtk_Parabola(*this); }
642  virtual ~Dtk_Parabola();
643 private:
644  void _Init();
645  void _Copy(const Dtk_Parabola& inToCopy);
646  void _Reset();
647  Dtk_ErrorStatus _SetFocal(const Dtk_Double64& inFocal);
648  friend class Dtk_SmartPtr<Dtk_Parabola>;
649 public:
650 
651  //downcasting
652  int DtkDynamicType(const int& inId);
653  static Dtk_Parabola * DtkDynamicCast(Dtk_Object * inObject);
654 
658  static Dtk_ParabolaPtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inFocal);
659 
660  //methods
662 
663 
666  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
667  //virtual Dtk_NurbsCurvePtr ToNurbs()const ;
668  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
670  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const;
671  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff,Dtk_dir &outdir,int exttype) const;
672 
673  virtual Dtk_pnt ComputeStartPoint() const;
674  virtual Dtk_pnt ComputeEndPoint() const;
675  virtual void Reverse();
676 
677 
678 
682  virtual Dtk_ErrorStatus _Store(void*);
683  virtual Dtk_Size_t GetSize() const;
684 };
685 
687 class Dtk_Hyperbola : public Dtk_Conic
688 {
689 protected:
690  struct Dtk_Handle; // Not defined here
691  Dtk_Handle *_Private; // Handle
694  Dtk_Hyperbola(const Dtk_Hyperbola& inToCopy);
695  Dtk_Hyperbola(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inSemiAxis,const Dtk_Double64& inSemiImageAxis);
696  inline virtual Dtk_Object* Clone() { return new Dtk_Hyperbola(*this); }
697  virtual ~Dtk_Hyperbola();
698 private:
699  void _Init();
700  void _Copy(const Dtk_Hyperbola& inToCopy);
701  void _Reset();
702  friend class Dtk_SmartPtr<Dtk_Hyperbola>;
703 public:
704 
705  //downcasting
706  int DtkDynamicType(const int& inId);
708 
712  static Dtk_HyperbolaPtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inSemiAxis,const Dtk_Double64& inSemiImageAxis);
713 
714  //methods
717 
718 
721  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
722  //virtual Dtk_NurbsCurvePtr ToNurbs()const ;
723  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
725  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const ;
726  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff,Dtk_dir &outdir,int exttype) const;
727 
728  virtual Dtk_pnt ComputeStartPoint() const;
729  virtual Dtk_pnt ComputeEndPoint() const;
730  virtual void Reverse();
731 
733 
737 
738  virtual Dtk_ErrorStatus _Store(void*);
739  virtual Dtk_Size_t GetSize() const;
740 };
741 
742 /*************************************** END CURVES **********************************/
743 /*************************************** SURFACES **********************************/
753 
754 class Dtk_Surface : public Dtk_Entity
755 {
756 protected:
757  struct Dtk_Handle; // Not defined here
758  Dtk_Handle *_Private; // Handle
762  virtual Dtk_Object* Clone() = 0;
763  virtual ~Dtk_Surface();
764 private:
765  void _Init();
766  void _Copy(const Dtk_Surface& s);
767  void _Reset();
768  friend class Dtk_SmartPtr<Dtk_Surface>;
769 public:
770 
771  //downcasting
772  int DtkDynamicType(const int& inId);
774 
775  static Dtk_SurfacePtr Create(const Dtk_Surface& in);
776 
778  Dtk_ErrorStatus GetTrimUVBox(Dtk_Double64 outTrimValues[]) const;
780  virtual Dtk_ErrorStatus SetTrimUVBox(Dtk_Double64 inTrimValues[]);
782  //virtual Dtk_ErrorStatus SetDomain(Dtk_Double64 inDomain[]);
783 
787  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
789  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const = 0;
791  Dtk_ErrorStatus ComputeUVto3DFirstDerivative( const Dtk_Double64& inUValue, const Dtk_Double64& inVValue, const Dtk_dir& inUVFirstDerivative, Dtk_dir &out3DFirstDerivative ) const;
793  Dtk_ErrorStatus ComputeUVto3DSecondDerivative( const Dtk_Double64& inUValue, const Dtk_Double64& inVValue, const Dtk_dir& inUVFirstDerivative, const Dtk_dir& inUVSecondDerivative, Dtk_dir &out3DSecondDerivative ) const;
795  virtual Dtk_bool IsUPeriodic() const;
797  virtual Dtk_bool IsVPeriodic() const;
800 
801  //virtual methods
803  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL)const =0;
804  virtual Dtk_Size_t GetSize() const;
805  virtual Dtk_ErrorStatus _Store(void*);
807  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const=0;
809 
810  //Internal use only
813 
814  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int extendtype) const;
815  virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int extendtype) const;
816 };
817 
824 {
825 protected:
826  struct Dtk_Handle; // Not defined here
827  Dtk_Handle *_Private; // Handle
830  Dtk_NurbsSurface(const Dtk_NurbsSurface& inSurfaceToCopy);
831  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,
833  Dtk_NurbsSurface(const Dtk_UInt32& inUDegree,const Dtk_UInt32& inVDegree,const Dtk_tab<Dtk_Double64> &inUKnotsValues,const Dtk_tab<Dtk_Double64> &inVKnotsValues,
834  const Dtk_tab<Dtk_UChar8> &inUKnotsMultiplicities,const Dtk_tab<Dtk_UChar8> &inVKnotsMultiplicities,const Dtk_tab<Dtk_tab<Dtk_pnt> > &inControlPoints,
836  Dtk_NurbsSurface(const Dtk_tab<Dtk_SurfacePtr> &inSurfacesToMerge, Dtk_Double64 stichtol /*= DTK_TOLERANCE */ );
837 
838  inline virtual Dtk_Object* Clone() { return new Dtk_NurbsSurface(*this); }
839  virtual ~Dtk_NurbsSurface();
840 private:
841  void _SetPointsArray(const Dtk_tab< Dtk_tab<Dtk_pnt> > &inPoints);
842  void _SetPointsArray(Dtk_pnt **inPoints,const Dtk_Size_t &inUSize,const Dtk_Size_t &inVSize);
843  void _SetWeightsArray(const Dtk_tab< Dtk_tab<Dtk_Double64> > &inWeights) ;
844  void _SetWeightsArray(Dtk_Double64 ** inWeights,const Dtk_Size_t &inUSize,const Dtk_Size_t &inVSize) ;
845  void _SetNodalVectorU(const Dtk_tab<Dtk_Double64> &inNodalVector);
846  void _SetNodalVectorU(const Dtk_Double64 * inNodalVector,const Dtk_Size_t &inSize);
847  void _SetNodalVectorV(const Dtk_tab<Dtk_Double64> &inNodalVector);
848  void _SetNodalVectorV(const Dtk_Double64 * inNodalVector,const Dtk_Size_t &inSize);
849  /*void _AddUKnotValue(const Dtk_UInt32& inKnotMultiplicity,const Dtk_Double64& inKnotValue);
850  void _AddVKnotValue(const Dtk_UInt32& inKnotMultiplicity,const Dtk_Double64& inKnotValue);*/
851 
852  Dtk_ErrorStatus _ComputeAnyDerivative_exotic(const Dtk_Double64 &inUvalue, const Dtk_Double64 &inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
853  Dtk_ErrorStatus _ComputeMultipleDerivative_exotic(const Dtk_Double64 &inUalue, const Dtk_Double64 &inValue, int ndu,int ndv,int nduvmax,Dtk_dir* outdirs,int exttype) const;
854 
855  Dtk_ErrorStatus _ReduceDegree( const Dtk_UInt32& inTargetUDegree, const Dtk_UInt32& inTargetVDegree );
856 
857  inline Dtk_Double64*Pdtk_unpacknodal( int unbk, int cnbk, Dtk_UChar8* multi, Dtk_Double64* compknots ) const;
858 
859  void _Init();
860  void _Copy(const Dtk_NurbsSurface& s);
861  void _Reset();
862  friend class Dtk_SmartPtr<Dtk_NurbsSurface>;
863 
864  virtual Dtk_ErrorStatus _ComputeAnyDerivativeExtended(Dtk_Double64 inUalue, Dtk_Double64 inValue, int ndu,int ndv,Dtk_dir &outdir,int exttype) const;
865  virtual Dtk_ErrorStatus _ComputeMultipleDerivativeExtended(Dtk_Double64 inUalue, Dtk_Double64 inValue, int ndu,int ndv,int nduvmax,Dtk_dir* outdirs,int exttype) const;
866 public:
867  Dtk_ErrorStatus _KnotInsertion(const Dtk_Double64 &inParameter,const Dtk_Size_t &inOccurence,const Dtk_bool &inUSplit,Dtk_Double64 inTolerance=DTK_TOLERANCE);
868  int _KnotRemoval(const Dtk_Double64 &inParameter,const int &inOccurence,const Dtk_bool &inUSplit,const Dtk_Double64 &inTolerance);
869 
870  //downcasting
871  int DtkDynamicType(const int& inId);
873 
876  static Dtk_NurbsSurfacePtr Create(const Dtk_UInt32& inUDegree,const Dtk_UInt32& inVDegree,const Dtk_tab<Dtk_Double64> &inUKnots,
878  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);
880  static Dtk_NurbsSurfacePtr Create(const Dtk_UInt32& inUDegree,const Dtk_UInt32& inVDegree,const Dtk_tab<Dtk_Double64> &inUKnotsValues,
881  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,
882  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 );
884  static Dtk_NurbsSurfacePtr Create(const Dtk_tab<Dtk_SurfacePtr> &inSurfacesToMerge, Dtk_Double64 stichtol = DTK_TOLERANCE );
885 
886 
887  //methods
892  Dtk_Double64 GetUKnotValue(const Dtk_Size_t& inIndex) const;
894  Dtk_Double64 GetVKnotValue(const Dtk_Size_t& inIndex ) const;
898 
899  const Dtk_pnt& Point(const Dtk_Size_t& inUIndex , const Dtk_Size_t& inVIndex) const;
900  Dtk_pnt& Point(const Dtk_Size_t& inUIndex , const Dtk_Size_t& inVIndex);
901  Dtk_Double64 GetWeight(const Dtk_Size_t& inUIndex , const Dtk_Size_t& inVIndex) const;
905  Dtk_bool IsPlane() const;
906 
908  virtual Dtk_bool IsUPeriodic() const;
910  virtual Dtk_bool IsVPeriodic() const;
911 
912  void SetIsUPeriodic(Dtk_bool inPeriodicFlag);
913  void SetIsVPeriodic(Dtk_bool inPeriodicFlag);
915 
916 
917 
919  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
920 
921  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
922  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
923  virtual Dtk_ErrorStatus ComputeUDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const;
924  virtual Dtk_ErrorStatus ComputeVDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const;
925  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
926  virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
927  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
928  virtual Dtk_ErrorStatus Reparam(Dtk_Double64 inDomain[]);
932  virtual Dtk_Size_t GetSize() const;
933  virtual Dtk_ErrorStatus _Store(void*);
934 
935  Dtk_ErrorStatus SplitAt(const Dtk_Double64 &inParameter,const Dtk_bool &inUSplit,const Dtk_bool &inKeepLeft,Dtk_NurbsSurfacePtr &outOtherPart,Dtk_Double64 inTolerance=DTK_TOLERANCE);
937  Dtk_NurbsSurfacePtr ForceG1Continuity (Dtk_Double64 tolerance_to_remove = 0.0005) const;
938 
941 };
942 
951 {
952 protected:
953  struct Dtk_Handle; // Not defined here
954  Dtk_Handle *_Private; // Handle
958  Dtk_PlaneSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal,const Dtk_dir& inUDirection,const Dtk_dir& inVDirection);
959  inline virtual Dtk_Object* Clone() { return new Dtk_PlaneSurface(*this); }
960 
961  virtual ~Dtk_PlaneSurface();
962 private:
963  void _Init();
964  void _Copy(const Dtk_PlaneSurface& s);
965  void _Reset();
966  friend class Dtk_SmartPtr<Dtk_PlaneSurface>;
967 public:
968 
969  //downcasting
970  int DtkDynamicType(const int& inId);
972 
979  static Dtk_PlaneSurfacePtr Create(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal,const Dtk_dir& inUDirection,const Dtk_dir& inVDirection=Dtk_dir());
982 
983  //methods
984 
992 
994  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
995  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
996  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
997  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
998  virtual Dtk_Size_t GetSize() const;
999  virtual Dtk_ErrorStatus _Store(void*);
1003 
1004  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1005 };
1006 
1015 {
1016 protected:
1017  struct Dtk_Handle; // Not defined here
1018  Dtk_Handle *_Private; // Handle
1022  Dtk_RevolutionSurface(const Dtk_CurvePtr& inRevolvedCurve,const Dtk_pnt& inAxisposition,const Dtk_dir& inRevolutionAxis,const Dtk_dir& inUDirection,const Dtk_dir&inYDir);
1023  inline virtual Dtk_Object* Clone() { return new Dtk_RevolutionSurface(*this); }
1025 private:
1026  void _Init();
1027  void _Copy(const Dtk_RevolutionSurface& s);
1028  void _Reset();
1029  friend class Dtk_SmartPtr<Dtk_RevolutionSurface>;
1030 public:
1031 
1032  //downcasting
1033  int DtkDynamicType(const int& inId);
1035 
1036  //constructors
1045  //SetAsDeprecated("Undefined", "Use Dtk_StandardRevolutionSurfacePtr")
1046  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());
1049 
1050  //methods
1056  const Dtk_dir& GetRevolutionAxis() const;
1059  const Dtk_pnt& GetAxisPosition() const;
1062  const Dtk_dir& GetXDirection()const;
1068  const Dtk_dir& GetZDirection()const;
1072 
1073  // Obsolete Function
1075 
1077  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1078  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1079  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1080  //virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1081  virtual Dtk_Size_t GetSize() const;
1082  virtual Dtk_ErrorStatus _Store(void*);
1087 
1088  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1089  virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1090 };
1091 
1101 {
1102 protected:
1103  struct Dtk_Handle; // Not defined here
1104  Dtk_Handle *_Private; // Handle
1108  Dtk_StandardRevolutionSurface(const Dtk_CurvePtr& inRevolvedCurve,const Dtk_pnt& inAxisposition,const Dtk_dir& inRevolutionAxis,const Dtk_dir& inVDirection,const Dtk_dir&inYDir);
1109  inline virtual Dtk_Object* Clone() { return new Dtk_StandardRevolutionSurface(*this); }
1111 private:
1112  void _Init();
1113  void _Copy(const Dtk_StandardRevolutionSurface& s);
1114  void _Reset();
1116 public:
1117 
1118  //downcasting
1119  int DtkDynamicType(const int& inId);
1121 
1122  //constructors
1130  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());
1133 
1134  //methods
1140  const Dtk_dir& GetRevolutionAxis() const;
1143  const Dtk_pnt& GetAxisPosition() const;
1146  const Dtk_dir& GetXDirection()const;
1152  const Dtk_dir& GetZDirection()const;
1156 
1157  // Obsolete Function
1159 
1161  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1162  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1163  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1164  //virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1165  virtual Dtk_Size_t GetSize() const;
1166  virtual Dtk_ErrorStatus _Store(void*);
1171 
1172  virtual Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1173  virtual Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1174 };
1175 
1176 
1186 {
1187 protected:
1188  struct Dtk_Handle; // Not defined here
1189  Dtk_Handle *_Private; // Handle
1193  Dtk_LinearExtrusionSurface(const Dtk_CurvePtr& inExtrudedCurve,const Dtk_dir& inExtrusionAxis);
1194  inline virtual Dtk_Object* Clone() { return new Dtk_LinearExtrusionSurface(*this); }
1195 
1197 private:
1198  void _Init();
1199  void _Copy(const Dtk_LinearExtrusionSurface& s);
1200  void _Reset();
1202 public:
1203 
1204  //downcasting
1205  int DtkDynamicType(const int& inId);
1207 
1208  //constructors
1213  static Dtk_LinearExtrusionSurfacePtr Create(const Dtk_CurvePtr& inExtrudedCurve,const Dtk_dir& inExtrusionAxis);
1216 
1217  //methods
1219  const Dtk_dir& GetExtrusionAxis() const;
1220 
1222  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1223  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1224  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1225  //virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1226  virtual Dtk_Size_t GetSize() const;
1227  virtual Dtk_ErrorStatus _Store(void*);
1231  virtual Dtk_bool IsUPeriodic() const;
1232  virtual Dtk_bool IsVPeriodic() const;
1233 
1234  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1235 };
1236 
1244 
1246 {
1247 protected:
1248  struct Dtk_Handle; // Not defined here
1249  Dtk_Handle *_Private; // Handle
1253  Dtk_RuledSurface(const Dtk_CurvePtr& inFirstCurve,const Dtk_CurvePtr& inSecondCurve);
1254  inline virtual Dtk_Object* Clone() { return new Dtk_RuledSurface(*this); }
1255 
1257 private:
1258  void _Init();
1259  void _Copy(const Dtk_RuledSurface& s);
1260  void _Reset();
1261  friend class Dtk_SmartPtr<Dtk_RuledSurface>;
1262 public:
1263 
1264  //downcasting
1265  int DtkDynamicType(const int& inId);
1267 
1268  //constructors
1273  static Dtk_RuledSurfacePtr Create(const Dtk_CurvePtr& inFirstCurve,const Dtk_CurvePtr& inSecondCurve);
1276 
1277  //methods
1280 
1282  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1283  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1284  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1285  virtual Dtk_Size_t GetSize() const;
1286  virtual Dtk_ErrorStatus _Store(void*);
1289 
1290  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1291  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1292 };
1293 
1303 {
1304 protected:
1305  struct Dtk_Handle; // Not defined here
1306  Dtk_Handle *_Private; // Handle
1310  Dtk_CylindricalSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inUDirection, const Dtk_dir& inYDirection, const Dtk_Double64& inRadius);
1311  inline virtual Dtk_Object* Clone() { return new Dtk_CylindricalSurface(*this); }
1313 private:
1314  void _Init();
1315  void _Copy(const Dtk_CylindricalSurface& s);
1316  void _Reset();
1317  friend class Dtk_SmartPtr<Dtk_CylindricalSurface>;
1318 public:
1319 
1320  //downcasting
1321  int DtkDynamicType(const int& inId);
1323 
1324  //constructors
1332  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());
1335 
1336  //methods
1340  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1341  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1342  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1343  virtual Dtk_Size_t GetSize() const;
1344  virtual Dtk_ErrorStatus _Store(void*);
1347 
1348  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1349  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1350 };
1351 
1352 
1362 {
1363 protected:
1364  struct Dtk_Handle; // Not defined here
1365  Dtk_Handle *_Private; // Handle
1369  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);
1370  inline virtual Dtk_Object* Clone() { return new Dtk_ConicalSurface(*this); }
1371 
1373 private:
1374  void _Init();
1375  void _Copy(const Dtk_ConicalSurface& s);
1376  void _Reset();
1377  friend class Dtk_SmartPtr<Dtk_ConicalSurface>;
1378 public:
1379 
1380  //downcasting
1381  int DtkDynamicType(const int& inId);
1383 
1384  //constructors
1393  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());
1396 
1397  //methods
1400 
1401 
1403  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1404  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1405  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1406  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1407  virtual Dtk_Size_t GetSize() const;
1408  virtual Dtk_ErrorStatus _Store(void*);
1411 };
1421 {
1422 protected:
1423  struct Dtk_Handle; // Not defined here
1424  Dtk_Handle *_Private; // Handle
1428  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);
1429  inline virtual Dtk_Object* Clone() { return new Dtk_ToroidalSurface(*this); }
1430 
1432 private:
1433  void _Init();
1434  void _Copy(const Dtk_ToroidalSurface& s);
1435  void _Reset();
1436  friend class Dtk_SmartPtr<Dtk_ToroidalSurface>;
1437 public:
1438 
1439  //downcasting
1440  int DtkDynamicType(const int& inId);
1442 
1443  //constructors
1452  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());
1455 
1456  //methods
1459 
1461  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1462  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1463  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1464  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1465  virtual Dtk_Size_t GetSize() const;
1466  virtual Dtk_ErrorStatus _Store(void*);
1469  virtual Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1470  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1471  virtual Dtk_bool IsUPeriodic() const;
1472  virtual Dtk_bool IsVPeriodic() const;
1473 };
1474 
1484 {
1485 protected:
1486  struct Dtk_Handle; // Not defined here
1487  Dtk_Handle *_Private; // Handle
1491  Dtk_SphericalSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inYDir, const Dtk_dir& inUDirection,const Dtk_Double64& inRadius);
1492  inline virtual Dtk_Object* Clone() { return new Dtk_SphericalSurface(*this); }
1493 
1495 private:
1496  void _Init();
1497  void _Copy(const Dtk_SphericalSurface& s);
1498  void _Reset();
1499  friend class Dtk_SmartPtr<Dtk_SphericalSurface>;
1500 public:
1501 
1502  //downcasting
1503  int DtkDynamicType(const int& inId);
1505 
1506  //constructors
1514  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());
1517 
1518  //methods
1520 
1522  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1523  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1524  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1525  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1526  virtual Dtk_Size_t GetSize() const ;
1527  virtual Dtk_ErrorStatus _Store(void*);
1530 
1531  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1532  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1533  //Dtk_ErrorStatus SetDomain(Dtk_Double64 inDomain[]);
1535  virtual Dtk_bool IsUPeriodic() const;
1537  virtual Dtk_bool IsVPeriodic() const;
1538 };
1539 
1549 {
1550 protected:
1551  struct Dtk_Handle; // Not defined here
1552  Dtk_Handle *_Private; // Handle
1556  Dtk_OffsetSurface(const Dtk_SurfacePtr &inSurf, const Dtk_Double64& inOffset);
1557  inline virtual Dtk_Object* Clone() { return new Dtk_OffsetSurface(*this); }
1559 private:
1560  void _Init();
1561  void _Copy(const Dtk_OffsetSurface& s);
1562  void _Reset();
1563  friend class Dtk_SmartPtr<Dtk_OffsetSurface>;
1564 public:
1565 
1566  //downcasting
1567  int DtkDynamicType(const int& inId);
1569 
1570  //constructors
1575  static Dtk_OffsetSurfacePtr Create(const Dtk_SurfacePtr &inSurf, const Dtk_Double64& inOffset);
1578 
1579  //methods
1582 
1584  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1585  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1586  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1587  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1588  virtual Dtk_Size_t GetSize() const;
1589  virtual Dtk_ErrorStatus _Store(void*);
1592  virtual void PrepareTransfo ();
1593 
1596 
1597  virtual Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1598  virtual Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1599  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;
1600 };
1601 
1604 {
1605 protected:
1606  struct Dtk_Handle; // Not defined here
1607  Dtk_Handle *_Private; // Handle
1611  Dtk_FilletSurface(const Dtk_CurvePtr &inSpine, const Dtk_Double64& inAngle1, const Dtk_Double64& inAngle2,const Dtk_Double64& inConstantRadius,const Dtk_tab<Dtk_CurvePtr> &inAdjacentCurve,
1612  const Dtk_tab<Dtk_SurfacePtr> &inAdjacentSurface, const Dtk_tab<Dtk_Double64 >& inSpineParam,
1613  const Dtk_tab<Dtk_Double64 > &inKnots,const Dtk_Double64& inRadius1,const Dtk_Double64& inRadius2,const Dtk_NurbsSurfacePtr &inCorrespondingNurbs = NULL);
1614  inline virtual Dtk_Object* Clone() { return new Dtk_FilletSurface(*this); }
1615 
1617 private:
1618  void _Init();
1619  void _Copy(const Dtk_FilletSurface& s);
1620  void _Reset();
1621  friend class Dtk_SmartPtr<Dtk_FilletSurface>;
1622 public:
1623 
1624  //downcasting
1625  int DtkDynamicType(const int& inId);
1627 
1628  //constructors
1630  static Dtk_FilletSurfacePtr Create(const Dtk_CurvePtr &inSpine, const Dtk_Double64& inAngle1, const Dtk_Double64& inAngle2, const Dtk_tab<Dtk_CurvePtr> &inAdjacentCurve,
1631  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>(),
1632  const Dtk_Double64& inConstantRadius=-1.0,const Dtk_NurbsSurfacePtr &inCorrespondingNurbs = NULL);
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 
1669 {
1670 protected:
1671  struct Dtk_Handle; // Not defined here
1672  Dtk_Handle *_Private; // Handle
1676  Dtk_TransformedSurface(const Dtk_SurfacePtr &inSurf, const Dtk_transfo& inTransformation);
1677  inline virtual Dtk_Object* Clone() { return new Dtk_TransformedSurface(*this); }
1679 private:
1680  void _Init();
1681  void _Copy(const Dtk_TransformedSurface& s);
1682  void _Reset();
1683  friend class Dtk_SmartPtr<Dtk_TransformedSurface>;
1684 public:
1685 
1686  //downcasting
1687  int DtkDynamicType(const int& inId);
1689 
1690  //constructors
1695  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 
1722 {
1723 private:
1724  struct Dtk_Handle; // Not defined here
1725  Dtk_Handle *_Private; // Handle
1726 
1727  enum { _typeID = DTK_TYPE_MESH_SURFACE };
1728  Dtk_MeshSurface();
1729  Dtk_MeshSurface( const Dtk_MeshSurface& s );
1730  virtual ~Dtk_MeshSurface();
1731  inline virtual Dtk_Object* Clone() {return new Dtk_MeshSurface( *this );}
1732  Dtk_MeshSurface( const std::vector<Dtk_pnt>& inP, const std::vector<Dtk_UInt32>& index );
1733  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 );
1734 private:
1735  void _Init();
1736  friend class Dtk_SmartPtr<Dtk_MeshSurface>;
1737  void _Copy( const Dtk_MeshSurface& s );
1738  void _Reset();
1739 
1740 
1741 public:
1742  int DtkDynamicType( const int& inId );
1748  virtual Dtk_ErrorStatus GetDomain( Dtk_Double64 outDomain[] ) const;
1751  virtual Dtk_NurbsSurfacePtr ToNurbs( const Dtk_Double64 *inTrimDomain = NULL ) const;
1754  virtual Dtk_ErrorStatus ComputeUVPoint( const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt ) const;
1755 
1756  Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int extendtype) const;
1761 
1765 
1766  //Internal Use
1767  static Dtk_MeshSurfacePtr Create( const std::vector<Dtk_pnt>& inP, const std::vector<Dtk_UInt32>& index );
1768  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 );
1769  const std::vector<Dtk_pnt>& GetVertexArray() const;
1770  const std::vector<Dtk_dir>& GetNormArray() const;
1771  const std::vector<Dtk_UInt32>& GetVertexArrayIndex() const;
1772  const std::vector<Dtk_UInt32>& GetAttrArrayIndex() const;
1773 
1774 };
1775 
1776 
1777 
1778 /*************************************** END SURFACES **********************************/
1779 
1780 
1781 #endif
Dtk_PlaneSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:959
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_RevolutionSurface::Create
static Dtk_RevolutionSurfacePtr Create(const Dtk_RevolutionSurface &in)
Calls copy constructor to allocate a new object.
Dtk_NurbsCurve::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_StandardRevolutionSurface::Create
static Dtk_StandardRevolutionSurfacePtr Create(const Dtk_StandardRevolutionSurface &in)
Calls copy constructor to allocate a new object.
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)
Calls full featured constructor to allocate a new object.
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:426
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_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:1019
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)
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:1101
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:1484
DTK_TYPE_MESH_SURFACE
@ DTK_TYPE_MESH_SURFACE
Definition: define.h:613
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:1362
Dtk_Curve::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:91
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_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:501
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)
Calls full featured constructor to allocate a new object.
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)
Dtk_RuledSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1254
Dtk_TransformedSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1673
Dtk_RuledSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1250
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:1429
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_NurbsCurvePtr &s, const Dtk_tab< Dtk_Double64 > &inKnotsValues, const Dtk_tab< Dtk_UChar8 > &inKnotsMultiplicities)
Calls full featured constructor to allocate a new object.
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:692
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_SphericalSurface::Create
static Dtk_SphericalSurfacePtr Create(const Dtk_SphericalSurface &in)
Calls copy constructor to allocate a new object.
Dtk_Parabola::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:637
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:1190
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 >())
Calls full featured constructor to allocate a new object.
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:1488
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:1677
Dtk_Line::Dtk_Line
Dtk_Line()
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:622
Dtk_FilletSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1614
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_Hyperbola::Create
static Dtk_HyperbolaPtr Create(const Dtk_Hyperbola &in)
Calls copy constructor to allocate a new object.
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:97
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_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:1671
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:1421
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:690
Dtk_PlaneSurface::Dtk_PlaneSurface
Dtk_PlaneSurface(const Dtk_PlaneSurface &s)
Dtk_Line::~Dtk_Line
virtual ~Dtk_Line()
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:714
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_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:759
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_OffsetSurface::Create
static Dtk_OffsetSurfacePtr Create(const Dtk_OffsetSurface &in)
Calls copy constructor to allocate a new object.
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:87
Dtk_RevolutionSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_OffsetSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1551
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)
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:690
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)
Calls full featured constructor to allocate a new object.
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:1103
Dtk_SphericalSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1486
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:641
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_CylindricalSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
DTK_FALSE
#define DTK_FALSE
Definition: define.h:730
Dtk_NurbsSurface::DtkDynamicCast
static Dtk_NurbsSurface * DtkDynamicCast(Dtk_Object *s)
DTK_TYPE_NURBS_CURVE
@ DTK_TYPE_NURBS_CURVE
Definition: define.h:496
Dtk_Polyline::Dtk_Polyline
Dtk_Polyline(const Dtk_Polyline &inPolylineToCopy)
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:727
Dtk_NurbsCurve::GetWeight
Dtk_Double64 GetWeight(const Dtk_Size_t &inIndex) const
return weight
Dtk_ConicalSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1366
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::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_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_LinearExtrusionSurface
This is the Linear Extrusion Surface Class. U parametrisation : Curve to be extruded V parametrisatio...
Definition: util_geom_dtk.hpp:1186
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)
Calls full featured constructor to allocate a new object.
Dtk_Double64
double Dtk_Double64
Definition: define.h:701
Dtk_TransformedSurface::GetSurface
Dtk_SurfacePtr GetSurface() const
Dtk_OffsetSurface::Dtk_OffsetSurface
Dtk_OffsetSurface(const Dtk_OffsetSurface &s)
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:350
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_Conic::Create
static Dtk_ConicPtr Create(const Dtk_Conic &in)
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:497
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)
Calls full featured constructor to allocate a new object.
Dtk_LinearExtrusionSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1188
Dtk_NurbsCurve::get_type_detk
type_detk get_type_detk() const
Return Curve type.
Dtk_ConicalSurface::Create
static Dtk_ConicalSurfacePtr Create(const Dtk_ConicalSurface &in)
Calls copy constructor to allocate a new object.
Dtk_Surface::Create
static Dtk_SurfacePtr Create(const Dtk_Surface &in)
Dtk_Ellipse::ComputeUDir
virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64 &inU, Dtk_dir &outDir) const
Compute dir on U parameter.
Dtk_StandardRevolutionSurface::Dtk_StandardRevolutionSurface
Dtk_StandardRevolutionSurface(const Dtk_StandardRevolutionSurface &inSurfToCopy)
Dtk_FilletSurface
Definition: util_geom_dtk.hpp:1604
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_TYPE_SURFACE
@ DTK_TYPE_SURFACE
Definition: define.h:116
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:499
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:1305
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:1303
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:190
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:431
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:1549
DTK_TYPE_POINT
@ DTK_TYPE_POINT
Definition: define.h:490
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_Curve::IsLine
Dtk_bool IsLine()
return True if Curve is a line
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_Polyline::Create
static Dtk_PolylinePtr Create(Dtk_tab< Dtk_pnt > inPoints)
Calls full featured constructor to allocate a new object.
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:633
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 >())
Calls full featured constructor to allocate a new object.
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)
Calls full featured constructor to allocate a new object.
Dtk_LinearExtrusionSurface::Dtk_LinearExtrusionSurface
Dtk_LinearExtrusionSurface(const Dtk_CurvePtr &inExtrudedCurve, const Dtk_dir &inExtrusionAxis)
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:94
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_NurbsSurface::Create
static Dtk_NurbsSurfacePtr Create(const Dtk_NurbsSurface &in)
Calls copy constructor to allocate a new object.
Dtk_Point::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_OffsetSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1553
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:757
Dtk_OffsetSurface::GetSurface
Dtk_SurfacePtr GetSurface() const
Dtk_NurbsSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:838
Dtk_ConicalSurface::GetSemiAngle
Dtk_Double64 GetSemiAngle() const
Dtk_Hyperbola
Definition: util_geom_dtk.hpp:688
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:1015
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)
Calls full featured constructor to allocate a new object.
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:1246
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:567
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_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_LinearExtrusionSurface::Create
static Dtk_LinearExtrusionSurfacePtr Create(const Dtk_LinearExtrusionSurface &in)
Calls copy constructor to allocate a new object.
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:826
Dtk_CylindricalSurface::Create
static Dtk_CylindricalSurfacePtr Create(const Dtk_CylindricalSurface &in)
Calls copy constructor to allocate a new object.
Dtk_NurbsCurve::ForceG1Continuity
Dtk_NurbsCurvePtr ForceG1Continuity() const
Dtk_FilletSurface::GetSpineParametrization
Dtk_tab< Dtk_Double64 > GetSpineParametrization() const
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_NurbsCurve &in)
Calls copy constructor to allocate a new object.
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)
Calls full featured constructor to allocate a new object.
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:1425
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_FilletSurface::GetConstantRadius
Dtk_Double64 GetConstantRadius() const
Dtk_UChar8
unsigned char Dtk_UChar8
Definition: define.h:700
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)
Calls full featured constructor to allocate a new object.
Dtk_NurbsCurve::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:200
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_Point::Create
static Dtk_PointPtr Create(const Dtk_Point &in)
Calls copy constructor to allocate a new object.
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:192
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_Parabola::Create
static Dtk_ParabolaPtr Create(const Dtk_Parabola &in)
Calls copy constructor to allocate a new object.
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)
Calls full featured constructor to allocate a new object.
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:696
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_Point::Create
static Dtk_PointPtr Create(const Dtk_pnt &in)
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:501
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_Line::Dtk_Line
Dtk_Line(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection)
DTK_TYPE_CYLINDRICAL_SURFACE
@ DTK_TYPE_CYLINDRICAL_SURFACE
Definition: define.h:95
Dtk_Polyline::Dtk_Polyline
Dtk_Polyline()
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:755
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.
Definition: util_geom_dtk.hpp:497
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_FilletSurface::Create
static Dtk_FilletSurfacePtr Create(const Dtk_FilletSurface &in)
Calls copy constructor to allocate a new object.
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:1608
Dtk_PlaneSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:955
Dtk_ToroidalSurface::Create
static Dtk_ToroidalSurfacePtr Create(const Dtk_ToroidalSurface &in)
Calls copy constructor to allocate a new object.
Dtk_LinearExtrusionSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_PlaneSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:953
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::Create
static Dtk_LinePtr Create(const Dtk_Line &in)
Calls copy constructor to allocate a new object.
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:1722
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:118
Dtk_Ellipse::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:569
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:1606
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)
Calls full featured constructor to allocate a new object.
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:499
Dtk_Parabola::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:635
Dtk_ConicalSurface::DtkDynamicCast
static Dtk_ConicalSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_OffsetSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1557
Dtk_Curve::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:89
Dtk_Line::_Private
Dtk_Handle * _Private
Handle
Definition: util_geom_dtk.hpp:422
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 class represent a point coordinates and information. It is part of the Dtk_Vertex 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:1307
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:575
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:117
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:1109
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:102
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_Polyline::Dtk_Polyline
Dtk_Polyline(Dtk_tab< Dtk_pnt > inPoints)
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:951
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:571
Dtk_NurbsSurface
This is the Nurbs Surface Class.
Definition: util_geom_dtk.hpp:824
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:98
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:1669
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)
Calls full featured constructor to allocate a new object.
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:828
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:1105
Dtk_ToroidalSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1423
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_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:1248
Dtk_Line
This is the Infinite Line Class. 0.0 parametrisation is first point or origin 1.0 parametrisation is ...
Definition: util_geom_dtk.hpp:419
DTK_TYPE_CONICAL_SURFACE
@ DTK_TYPE_CONICAL_SURFACE
Definition: define.h:96
Dtk_Ellipse::Create
static Dtk_EllipsePtr Create(const Dtk_Ellipse &in)
Calls copy constructor to allocate a new object.
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:498
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_RuledSurface::Create
static Dtk_RuledSurfacePtr Create(const Dtk_RuledSurface &in)
Calls copy constructor to allocate a new object.
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:1023
Dtk_Polyline::Create
static Dtk_PolylinePtr Create(const Dtk_Polyline &in)
Calls copy constructor to allocate a new object.
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:1364
Dtk_RevolutionSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1017
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:1311
Dtk_SphericalSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1492
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_MeshSurface::get_type_detk
type_detk get_type_detk() const
Dtk_NurbsCurve
This is the Nurbs Class.
Definition: util_geom_dtk.hpp:188
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:1370
Dtk_LinearExtrusionSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1194
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.
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_PlaneSurface::Create
static Dtk_PlaneSurfacePtr Create(const Dtk_PlaneSurface &in)
Calls copy constructor to allocate a new object.
DTK_TYPE_LINEAR_EXTRUSION_SURFACE
@ DTK_TYPE_LINEAR_EXTRUSION_SURFACE
Definition: define.h:500
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:349
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_TransformedSurface::Create
static Dtk_TransformedSurfacePtr Create(const Dtk_TransformedSurface &in)
Calls copy constructor to allocate a new object.
Dtk_LinearExtrusionSurface::GetExtrudedCurve
Dtk_CurvePtr GetExtrudedCurve() const