DATAKIT API  V2025.1
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 
10 
11 /*************************************** POINTS **********************************/
12 
19 class Dtk_Point : public Dtk_Entity
20 {
21 protected:
22  struct Dtk_Handle; // Not defined here
23  Dtk_Handle *_Private; // Handle
24  enum { _typeID = DTK_TYPE_POINT };
26  Dtk_Point(const Dtk_Point& s);
27  virtual ~Dtk_Point();
28  inline virtual Dtk_Object* Clone() { return new Dtk_Point(*this); }
29 
30 private:
31  void _Init();
32  void _Copy(const Dtk_Point& s);
33  void _Reset();
34  friend class Dtk_SmartPtr<Dtk_Point>;
35 public:
37  Dtk_Point(const Dtk_pnt& pt);
38 
40  int DtkDynamicType(const int& inId);
41  static Dtk_Point * DtkDynamicCast(Dtk_Object * inObject);
42 
43 
45  static Dtk_PointPtr Create(const Dtk_Point& inToCopy);
46  static Dtk_PointPtr Create(const Dtk_pnt& inToCopy);
47  static Dtk_PointPtr Create(const Dtk_Double64 & inX, const Dtk_Double64 & inY, const Dtk_Double64 & inZ);
48 
49  //methods
53 
58 
60  virtual Dtk_ErrorStatus _Store(void*);
61  virtual Dtk_Size_t GetSize() const;
62 };
63 
64 /*************************************** CURVES **********************************/
65 
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 
188 class Dtk_NurbsCurve : public Dtk_Curve
189 {
190 protected:
191  struct Dtk_Handle; // Not defined here
192  Dtk_Handle *_Private; // Handle
196  virtual ~Dtk_NurbsCurve();
197  Dtk_NurbsCurve(const Dtk_UInt32& inDegree,const Dtk_tab<Dtk_pnt> &inControlPoints);
198  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>());
199  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>());
200  Dtk_NurbsCurve(const Dtk_tab<Dtk_CurvePtr> &inCurvesToMerge, Dtk_Double64 stichtol /*= DTK_TOLERANCE*/, Dtk_bool LengthParameter /* DTK_FALSE*/ );
201  inline virtual Dtk_Object* Clone() { return new Dtk_NurbsCurve(*this); }
202 private:
203  Dtk_ErrorStatus _ComputeUPointDirClamp(const Dtk_Double64& inUparameter,Dtk_pnt& outPoint,Dtk_dir& outDir)const;
204  void _SetNodalVector(const Dtk_tab<Dtk_Double64>& inKnotsVector);
205  void _SetNodalVector(const Dtk_Double64 * inNodalVector,const Dtk_Size_t &inSize);
206  void _AddKnot(const Dtk_UInt32& inKnotMultiplicity,const Dtk_Double64& inKnotValue);
207  void _SetPointsArray(const Dtk_tab<Dtk_pnt> &inPointArray);
208  void _SetPointsArray(Dtk_pnt *inPoints,const Dtk_Size_t &inSize);
209  void _SetWeight(const Dtk_Size_t& inIndex,Dtk_Double64 inWeight) ;
210  void _SetWeightsArray(const Dtk_tab<Dtk_Double64>& inWeightArray) ;
211  void _SetWeightsArray(Dtk_Double64 * inWeights,const Dtk_Size_t &inSize) ;
212  void _Init();
213  void _Copy(const Dtk_NurbsCurve& s);
214  void _Reset();
215  friend class Dtk_SmartPtr<Dtk_NurbsCurve>;
216 public:
217  Dtk_ErrorStatus _KnotInsertion(const Dtk_Double64 &inUparameter,const Dtk_Size_t &inOccurence,Dtk_Double64 inTolerance=DTK_TOLERANCE);
218  Dtk_ErrorStatus _DegreeElevation(const Dtk_Size_t &inDegreeElevation);
219  int _KnotRemoval(const Dtk_Double64 &inU,const int &inNum,const Dtk_Double64 &inTolerance);
220 
221  //downcasting
222  int DtkDynamicType(const int& inId);
224 
225  //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>());
229  static Dtk_NurbsCurvePtr Create(const Dtk_UInt32& inDegree,const Dtk_tab<Dtk_Double64> &inKnotsValues,const Dtk_tab<Dtk_UChar8> &inKnotsMultiplicities,
230  const Dtk_tab<Dtk_pnt> &inControlPoints,const Dtk_tab<Dtk_Double64> &inWeights=Dtk_tab<Dtk_Double64>());
231  //static Dtk_NurbsCurvePtr Create(const Dtk_UInt32& inDegree,const Dtk_tab<Dtk_pnt> &inControlPoints);
232  static Dtk_NurbsCurvePtr Create(const Dtk_NurbsCurvePtr& s,const Dtk_tab<Dtk_Double64>& inKnotsValues,const Dtk_tab<Dtk_UChar8>& inKnotsMultiplicities);
233  static Dtk_NurbsCurvePtr Create(const Dtk_tab<Dtk_CurvePtr> &inCurvesToMerge, Dtk_Double64 stichtol = DTK_TOLERANCE, Dtk_bool LengthParameter = DTK_FALSE );
234 
235 
236  //methods
242  Dtk_Double64 GetKnotValue(const Dtk_Size_t& inIndex) const;
248  Dtk_ErrorStatus Reparam(const Dtk_Double64 &inUmin,const Dtk_Double64 &inUmax);
250  const Dtk_pnt& Point(const Dtk_Size_t& inIndex) const;
251  Dtk_pnt& Point(const Dtk_Size_t& inIndex);
253  Dtk_Double64 GetWeight(const Dtk_Size_t& inIndex) const;
254 
262  Dtk_bool IsLine() const;
266  virtual Dtk_bool IsPeriodic() const;
267 
269  void SetIsPeriodic(const Dtk_bool &inIsPeriodic);
271  void SetIsClosed(const Dtk_bool &inIsClosed);
274 
275  Dtk_ErrorStatus ComputeUPointDir(const Dtk_Double64& inUparameter,Dtk_pnt& outPoint,Dtk_dir& outDir)const;
276  Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax, Dtk_bool inMorePrecise = 0);
277 
279  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const;
280 
282  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
284  virtual Dtk_NurbsCurvePtr ToNurbs()const ;
286  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
288  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
290  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outParameter)const;
292  virtual Dtk_pnt ComputeStartPoint() const;
294  virtual Dtk_pnt ComputeEndPoint() const;
296  virtual void Reverse();
297 
299 
300 
305  void SetTypeBeforeConversion(const type_detk& inType);
307 
308  // \brief To Dump Curve
309  virtual Dtk_ErrorStatus _Store(void*);
310  virtual Dtk_Size_t GetSize() const;
311 
318  Dtk_ErrorStatus _ComputeAnyDerivativeExtended(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
324  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
325  Dtk_Double64 _ComputeWeight(Dtk_Double64 inUvalue, int exttype) const;
326 
328 };
329 
336 class Dtk_Polyline : public Dtk_Curve
337 {
338 protected:
340  struct Dtk_Handle;
342  Dtk_Handle *_Private;
348  Dtk_Polyline(const Dtk_Polyline& inPolylineToCopy);
350  Dtk_Polyline(const Dtk_tab<Dtk_pnt> &inPoints );
352  Dtk_Polyline(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
353  inline virtual Dtk_Object* Clone() { return new Dtk_Polyline(*this); }
355  virtual ~Dtk_Polyline();
356 private:
358  void _Init();
360  void _Copy(const Dtk_Polyline& inPolylineToCopy);
362  void _Reset();
364  friend class Dtk_SmartPtr<Dtk_Polyline>;
365 public:
366 
367  //downcasting
368  int DtkDynamicType(const int& inId);
369  static Dtk_Polyline * DtkDynamicCast(Dtk_Object * inObjectToCast);
370 
372  static Dtk_PolylinePtr Create(const Dtk_Polyline& inPolylineToCopy);
373  static Dtk_PolylinePtr Create(const Dtk_tab<Dtk_pnt> &inPoints);
374  static Dtk_PolylinePtr Create(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
375 
376  //methods
378  Dtk_bool IsLine() const;
382  void AddPoint(const Dtk_pnt& inNewPoint);
383  void AddPoint(const Dtk_Double64& inX,const Dtk_Double64& inY,const Dtk_Double64& inZ=0.0);
384 
386  const Dtk_pnt& Point(const Dtk_Size_t& inIndex) const;
387  Dtk_pnt& Point(const Dtk_Size_t& inIndex);
388 
389  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
390  virtual Dtk_NurbsCurvePtr ToNurbs()const ;
392  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const;
393  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
395  virtual Dtk_pnt ComputeStartPoint() const;
396  virtual Dtk_pnt ComputeEndPoint() const;
397  virtual void Reverse();
398  Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax, Dtk_bool inMorePrecise = 0);
399  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff,Dtk_dir &outdir,int exttype) const;
400 
401 
403  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const;
404 
408 
409  virtual Dtk_ErrorStatus _Store(void*);
410  virtual Dtk_Size_t GetSize() const;
411 };
412 
421 class Dtk_Line : public Dtk_Curve
422 {
423 protected:
425  struct Dtk_Handle;
427  Dtk_Handle *_Private;
429  enum { _typeID = DTK_TYPE_LINE };
433  Dtk_Line(const Dtk_Line& inLineToCopy);
435  Dtk_Line(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection);
437  Dtk_Line(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
438  inline virtual Dtk_Object* Clone() { return new Dtk_Line(*this); }
440  virtual ~Dtk_Line();
441 private:
443  void _Init();
445  void _Copy(const Dtk_Line& inLineToCopy);
447  void _Reset();
449  friend class Dtk_SmartPtr<Dtk_Line>;
450 public:
451 
452  //downcasting
453  int DtkDynamicType(const int& inId);
454  static Dtk_Line * DtkDynamicCast(Dtk_Object * inObjectToCast);
455 
457  static Dtk_LinePtr Create(const Dtk_Line& inLineToCopy);
458  static Dtk_LinePtr Create(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2);
459  static Dtk_LinePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection);
460 
461  //methods
466 
467  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
468  virtual Dtk_NurbsCurvePtr ToNurbs()const ;
470  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const;
471  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
473  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
474  virtual Dtk_pnt ComputeStartPoint() const;
475  virtual Dtk_pnt ComputeEndPoint() const;
476  virtual void Reverse();
477  virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax,Dtk_bool inMorePrecise = 0);
478 
479 
481  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64& outUmin,Dtk_Double64& outUmax) const;
482 
486  virtual void Normalize();
487 
489 
490  virtual Dtk_ErrorStatus _Store(void*);
491  virtual Dtk_Size_t GetSize() const;
492  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
493 };
494 
495 
502 class Dtk_Conic : public Dtk_Curve
503 {
504 protected:
505  struct Dtk_Handle; // Not defined here
506  Dtk_Handle *_Private; // Handle
507  enum { _typeID = DTK_TYPE_CONIC };
509  Dtk_Conic(const Dtk_Conic& inConicToCopy);
510 // 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);
511 // Dtk_Conic(const Dtk_Double64& inA,const Dtk_Double64& inB,const Dtk_Double64& inC,const Dtk_Double64& inD,const Dtk_Double64& inE,const Dtk_Double64& inF,
512 // const Dtk_pnt &inCenter, const Dtk_dir &inUOrigin, const Dtk_dir &inNormal);
513  virtual Dtk_Object* Clone() = 0;
514  virtual ~Dtk_Conic();
515 private:
516  void _Init();
517  void _Copy(const Dtk_Conic& inConicToCopy);
518  void _Reset();
519  Dtk_ErrorStatus _SetCenterPoint(const Dtk_pnt& inCenterPoint);
520  Dtk_ErrorStatus _SetCenterPoint(const Dtk_Double64& inXCenterPoint,const Dtk_Double64& inYCenterPoint,const Dtk_Double64& inZCenterPoint);
521  Dtk_ErrorStatus _SetNormalDirection(const Dtk_dir& inNormalDirection);
522  Dtk_ErrorStatus _SetOriginDirection(const Dtk_dir& inOriginDirection);
523 
524  friend class Dtk_SmartPtr<Dtk_Conic>;
525 public:
526 
527  //downcasting
528  int DtkDynamicType(const int& inId);
529  static Dtk_Conic * DtkDynamicCast(Dtk_Object * inObject);
530 
531  //constructors
532  static Dtk_ConicPtr Create(const Dtk_Conic& inConicToCopy);
533 // 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);
534 // static Dtk_ConicPtr Create(const Dtk_Double64& inA,const Dtk_Double64& inB,const Dtk_Double64& inC,const Dtk_Double64& inD,const Dtk_Double64& inE,const Dtk_Double64& inF,
535 // const Dtk_pnt &inCenter, const Dtk_dir &inUOrigin, const Dtk_dir &inNormal);
536 
537  //methods
539  const Dtk_pnt& GetCenterPoint() const;
540 
542  const Dtk_dir& GetNormalDirection() const;
543  const Dtk_dir& GetZDirection() const;
544 
546  const Dtk_dir& GetOriginDirection() const;
547  const Dtk_dir& GetXDirection() const;
548 
551 
553  virtual Dtk_NurbsCurvePtr ToNurbs()const;
554 
556 
560 
561  virtual Dtk_ErrorStatus _Store(void*);
562  virtual Dtk_Size_t GetSize() const;
563 };
564 
573 class Dtk_Ellipse : public Dtk_Conic
574 {
575 protected:
576  struct Dtk_Handle; // Not defined here
577  Dtk_Handle *_Private; // Handle
580  Dtk_Ellipse(const Dtk_Ellipse& inEllipseToCopy);
581  Dtk_Ellipse(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius);
582  inline virtual Dtk_Object* Clone() { return new Dtk_Ellipse(*this); }
583  virtual ~Dtk_Ellipse();
584 private:
585  void _Init();
586  void _Copy(const Dtk_Ellipse& inEllipseToCopy);
587  void _Reset();
588  Dtk_ErrorStatus _SetRadius(const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius);
589  Dtk_ErrorStatus _SetRadius(const Dtk_Double64& inRadius);
590  friend class Dtk_SmartPtr<Dtk_Ellipse>;
591 public:
592 
593  //downcasting
594  int DtkDynamicType(const int& inId);
595  static Dtk_Ellipse * DtkDynamicCast(Dtk_Object * inObject);
596 
597  //constructors
598  static Dtk_EllipsePtr Create(const Dtk_Ellipse& inEllipseToCopy);
599  static Dtk_EllipsePtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inMajorRadius,const Dtk_Double64& inMinorRadius);
600  static Dtk_EllipsePtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inRadius);
601 
602  //methods
606 
607 
610  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
611  // virtual Dtk_NurbsCurvePtr ToNurbs()const ;
612  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
614  virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64& inU,Dtk_dir& outDir) const;
616  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const ;
618  virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt& outMin, Dtk_pnt& outMax,Dtk_bool inMorePrecise = 0);
619 
620 
621  virtual Dtk_pnt ComputeStartPoint() const;
622  virtual Dtk_pnt ComputeEndPoint() const;
623  virtual void Reverse();
624 
625 
626 
630 
631  virtual Dtk_ErrorStatus _Store(void*);
632  virtual Dtk_Size_t GetSize() const;
633  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff,Dtk_dir &outdir,int exttype) const;
634 };
635 
636 class Dtk_Parabola : public Dtk_Conic
637 {
638 protected:
639  struct Dtk_Handle; // Not defined here
640  Dtk_Handle *_Private; // Handle
643  Dtk_Parabola(const Dtk_Parabola& inToCopy);
644  Dtk_Parabola(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inMajorRadius);
645  inline virtual Dtk_Object* Clone() { return new Dtk_Parabola(*this); }
646  virtual ~Dtk_Parabola();
647 private:
648  void _Init();
649  void _Copy(const Dtk_Parabola& inToCopy);
650  void _Reset();
651  Dtk_ErrorStatus _SetFocal(const Dtk_Double64& inFocal);
652  friend class Dtk_SmartPtr<Dtk_Parabola>;
653 public:
654 
655  //downcasting
656  int DtkDynamicType(const int& inId);
657  static Dtk_Parabola * DtkDynamicCast(Dtk_Object * inObject);
658 
659  //constructors
660  static Dtk_ParabolaPtr Create(const Dtk_Parabola& inToCopy);
661  static Dtk_ParabolaPtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inFocal);
662 
663  //methods
665 
666 
669  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
670  //virtual Dtk_NurbsCurvePtr ToNurbs()const ;
671  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
673  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const;
674  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff,Dtk_dir &outdir,int exttype) const;
675 
676  virtual Dtk_pnt ComputeStartPoint() const;
677  virtual Dtk_pnt ComputeEndPoint() const;
678  virtual void Reverse();
679 
680 
681 
685  virtual Dtk_ErrorStatus _Store(void*);
686  virtual Dtk_Size_t GetSize() const;
687 };
688 
689 class Dtk_Hyperbola : public Dtk_Conic
690 {
691 protected:
692  struct Dtk_Handle; // Not defined here
693  Dtk_Handle *_Private; // Handle
696  Dtk_Hyperbola(const Dtk_Hyperbola& inToCopy);
697  Dtk_Hyperbola(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inSemiAxis,const Dtk_Double64& inSemiImageAxis);
698  inline virtual Dtk_Object* Clone() { return new Dtk_Hyperbola(*this); }
699  virtual ~Dtk_Hyperbola();
700 private:
701  void _Init();
702  void _Copy(const Dtk_Hyperbola& inToCopy);
703  void _Reset();
704  friend class Dtk_SmartPtr<Dtk_Hyperbola>;
705 public:
706 
707  //downcasting
708  int DtkDynamicType(const int& inId);
710 
711  //constructors
712  static Dtk_HyperbolaPtr Create(const Dtk_Hyperbola& inToCopy);
713  static Dtk_HyperbolaPtr Create(const Dtk_pnt& inCenter,const Dtk_dir& inNormal,const Dtk_dir& inXref,const Dtk_Double64& inSemiAxis,const Dtk_Double64& inSemiImageAxis);
714 
715  //methods
718 
719 
722  virtual Dtk_PolylinePtr ToPolyline(const int & inMinPoint,const Dtk_Double64& inTolerance)const ;
723  //virtual Dtk_NurbsCurvePtr ToNurbs()const ;
724  virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64& inU,Dtk_pnt& outPoint)const ;
726  virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt& inPoint,Dtk_Double64& outU)const ;
727  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff,Dtk_dir &outdir,int exttype) const;
728 
729  virtual Dtk_pnt ComputeStartPoint() const;
730  virtual Dtk_pnt ComputeEndPoint() const;
731  virtual void Reverse();
732 
734 
738 
739  virtual Dtk_ErrorStatus _Store(void*);
740  virtual Dtk_Size_t GetSize() const;
741 };
742 
743 /*************************************** END CURVES **********************************/
744 /*************************************** SURFACES **********************************/
754 
755 class Dtk_Surface : public Dtk_Entity
756 {
757 protected:
758  struct Dtk_Handle; // Not defined here
759  Dtk_Handle *_Private; // Handle
763  virtual Dtk_Object* Clone() = 0;
764  virtual ~Dtk_Surface();
765 private:
766  void _Init();
767  void _Copy(const Dtk_Surface& s);
768  void _Reset();
769  friend class Dtk_SmartPtr<Dtk_Surface>;
770 public:
771 
772  //downcasting
773  int DtkDynamicType(const int& inId);
775 
776  //constructors
779 
781  Dtk_ErrorStatus GetTrimUVBox(Dtk_Double64 outTrimValues[]) const;
783  virtual Dtk_ErrorStatus SetTrimUVBox(Dtk_Double64 inTrimValues[]);
785  //virtual Dtk_ErrorStatus SetDomain(Dtk_Double64 inDomain[]);
786 
790  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
792  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const = 0;
794  Dtk_ErrorStatus ComputeUVto3DFirstDerivative( const Dtk_Double64& inUValue, const Dtk_Double64& inVValue, const Dtk_dir& inUVFirstDerivative, Dtk_dir &out3DFirstDerivative ) const;
796  Dtk_ErrorStatus ComputeUVto3DSecondDerivative( const Dtk_Double64& inUValue, const Dtk_Double64& inVValue, const Dtk_dir& inUVFirstDerivative, const Dtk_dir& inUVSecondDerivative, Dtk_dir &out3DSecondDerivative ) const;
798  virtual Dtk_bool IsUPeriodic() const;
800  virtual Dtk_bool IsVPeriodic() const;
803 
804  //virtual methods
806  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL)const =0;
807  virtual Dtk_Size_t GetSize() const;
808  virtual Dtk_ErrorStatus _Store(void*);
810  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const=0;
812 
813  //Internal use only
816 
817  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int extendtype) const;
818  virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int extendtype) const;
819 };
820 
828 {
829 protected:
830  struct Dtk_Handle; // Not defined here
831  Dtk_Handle *_Private; // Handle
834  Dtk_NurbsSurface(const Dtk_NurbsSurface& inSurfaceToCopy);
835  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,
837  Dtk_NurbsSurface(const Dtk_UInt32& inUDegree,const Dtk_UInt32& inVDegree,const Dtk_tab<Dtk_Double64> &inUKnotsValues,const Dtk_tab<Dtk_Double64> &inVKnotsValues,
838  const Dtk_tab<Dtk_UChar8> &inUKnotsMultiplicities,const Dtk_tab<Dtk_UChar8> &inVKnotsMultiplicities,const Dtk_tab<Dtk_tab<Dtk_pnt> > &inControlPoints,
840  Dtk_NurbsSurface(const Dtk_tab<Dtk_SurfacePtr> &inSurfacesToMerge, Dtk_Double64 stichtol /*= DTK_TOLERANCE */ );
841 
842  inline virtual Dtk_Object* Clone() { return new Dtk_NurbsSurface(*this); }
843  virtual ~Dtk_NurbsSurface();
844 private:
845  void _SetPointsArray(const Dtk_tab< Dtk_tab<Dtk_pnt> > &inPoints);
846  void _SetPointsArray(Dtk_pnt **inPoints,const Dtk_Size_t &inUSize,const Dtk_Size_t &inVSize);
847  void _SetWeightsArray(const Dtk_tab< Dtk_tab<Dtk_Double64> > &inWeights) ;
848  void _SetWeightsArray(Dtk_Double64 ** inWeights,const Dtk_Size_t &inUSize,const Dtk_Size_t &inVSize) ;
849  void _SetNodalVectorU(const Dtk_tab<Dtk_Double64> &inNodalVector);
850  void _SetNodalVectorU(const Dtk_Double64 * inNodalVector,const Dtk_Size_t &inSize);
851  void _SetNodalVectorV(const Dtk_tab<Dtk_Double64> &inNodalVector);
852  void _SetNodalVectorV(const Dtk_Double64 * inNodalVector,const Dtk_Size_t &inSize);
853  /*void _AddUKnotValue(const Dtk_UInt32& inKnotMultiplicity,const Dtk_Double64& inKnotValue);
854  void _AddVKnotValue(const Dtk_UInt32& inKnotMultiplicity,const Dtk_Double64& inKnotValue);*/
855 
856  Dtk_ErrorStatus _ComputeAnyDerivative_exotic(const Dtk_Double64 &inUvalue, const Dtk_Double64 &inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
857  Dtk_ErrorStatus _ComputeMultipleDerivative_exotic(const Dtk_Double64 &inUalue, const Dtk_Double64 &inValue, int ndu,int ndv,int nduvmax,Dtk_dir* outdirs,int exttype) const;
858 
859  Dtk_ErrorStatus _ReduceDegree( const Dtk_UInt32& inTargetUDegree, const Dtk_UInt32& inTargetVDegree );
860 
861  inline Dtk_Double64*Pdtk_unpacknodal( int unbk, int cnbk, Dtk_UChar8* multi, Dtk_Double64* compknots ) const;
862 
863  void _Init();
864  void _Copy(const Dtk_NurbsSurface& s);
865  void _Reset();
866  friend class Dtk_SmartPtr<Dtk_NurbsSurface>;
867 
868  virtual Dtk_ErrorStatus _ComputeAnyDerivativeExtended(Dtk_Double64 inUalue, Dtk_Double64 inValue, int ndu,int ndv,Dtk_dir &outdir,int exttype) const;
869  virtual Dtk_ErrorStatus _ComputeMultipleDerivativeExtended(Dtk_Double64 inUalue, Dtk_Double64 inValue, int ndu,int ndv,int nduvmax,Dtk_dir* outdirs,int exttype) const;
870 public:
871  Dtk_ErrorStatus _KnotInsertion(const Dtk_Double64 &inParameter,const Dtk_Size_t &inOccurence,const Dtk_bool &inUSplit,Dtk_Double64 inTolerance=DTK_TOLERANCE);
872  int _KnotRemoval(const Dtk_Double64 &inParameter,const int &inOccurence,const Dtk_bool &inUSplit,const Dtk_Double64 &inTolerance);
873 
874  //downcasting
875  int DtkDynamicType(const int& inId);
877 
878  //constructors
880  static Dtk_NurbsSurfacePtr Create(const Dtk_UInt32& inUDegree,const Dtk_UInt32& inVDegree,const Dtk_tab<Dtk_Double64> &inUKnots,
881  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);
882  static Dtk_NurbsSurfacePtr Create(const Dtk_UInt32& inUDegree,const Dtk_UInt32& inVDegree,const Dtk_tab<Dtk_Double64> &inUKnotsValues,
883  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,
884  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 );
885  static Dtk_NurbsSurfacePtr Create(const Dtk_tab<Dtk_SurfacePtr> &inSurfacesToMerge, Dtk_Double64 stichtol = DTK_TOLERANCE );
886 
887 
888  //methods
893  Dtk_Double64 GetUKnotValue(const Dtk_Size_t& inIndex) const;
895  Dtk_Double64 GetVKnotValue(const Dtk_Size_t& inIndex ) const;
899 
900  const Dtk_pnt& Point(const Dtk_Size_t& inUIndex , const Dtk_Size_t& inVIndex) const;
901  Dtk_pnt& Point(const Dtk_Size_t& inUIndex , const Dtk_Size_t& inVIndex);
902  Dtk_Double64 GetWeight(const Dtk_Size_t& inUIndex , const Dtk_Size_t& inVIndex) const;
906  Dtk_bool IsPlane() const;
907 
909  virtual Dtk_bool IsUPeriodic() const;
911  virtual Dtk_bool IsVPeriodic() const;
912 
913  void SetIsUPeriodic(Dtk_bool inPeriodicFlag);
914  void SetIsVPeriodic(Dtk_bool inPeriodicFlag);
916 
917 
918 
920  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
921 
922  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
923  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
924  virtual Dtk_ErrorStatus ComputeUDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const;
925  virtual Dtk_ErrorStatus ComputeVDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const;
926  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
927  virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
928  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
929  virtual Dtk_ErrorStatus Reparam(Dtk_Double64 inDomain[]);
933  virtual Dtk_Size_t GetSize() const;
934  virtual Dtk_ErrorStatus _Store(void*);
935 
936  Dtk_ErrorStatus SplitAt(const Dtk_Double64 &inParameter,const Dtk_bool &inUSplit,const Dtk_bool &inKeepLeft,Dtk_NurbsSurfacePtr &outOtherPart,Dtk_Double64 inTolerance=DTK_TOLERANCE);
938  Dtk_NurbsSurfacePtr ForceG1Continuity (Dtk_Double64 tolerance_to_remove = 0.0005) const;
939 
942 };
943 
954 {
955 protected:
956  struct Dtk_Handle; // Not defined here
957  Dtk_Handle *_Private; // Handle
961  Dtk_PlaneSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal,const Dtk_dir& inUDirection,const Dtk_dir& inVDirection);
962  inline virtual Dtk_Object* Clone() { return new Dtk_PlaneSurface(*this); }
963 
964  virtual ~Dtk_PlaneSurface();
965 private:
966  void _Init();
967  void _Copy(const Dtk_PlaneSurface& s);
968  void _Reset();
969  friend class Dtk_SmartPtr<Dtk_PlaneSurface>;
970 public:
971 
972  //downcasting
973  int DtkDynamicType(const int& inId);
975 
976  //constructors
983  static Dtk_PlaneSurfacePtr Create(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal,const Dtk_dir& inUDirection,const Dtk_dir& inVDirection=Dtk_dir());
984  static Dtk_PlaneSurfacePtr Create(const Dtk_PlaneSurface& inPlaneToCopy);
985 
986  //methods
987 
995 
997  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
998  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
999  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1000  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1001  virtual Dtk_Size_t GetSize() const;
1002  virtual Dtk_ErrorStatus _Store(void*);
1006 
1007  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1008 };
1009 
1019 {
1020 protected:
1021  struct Dtk_Handle; // Not defined here
1022  Dtk_Handle *_Private; // Handle
1026  Dtk_RevolutionSurface(const Dtk_CurvePtr& inRevolvedCurve,const Dtk_pnt& inAxisposition,const Dtk_dir& inRevolutionAxis,const Dtk_dir& inUDirection,const Dtk_dir&inYDir);
1027  inline virtual Dtk_Object* Clone() { return new Dtk_RevolutionSurface(*this); }
1029 private:
1030  void _Init();
1031  void _Copy(const Dtk_RevolutionSurface& s);
1032  void _Reset();
1033  friend class Dtk_SmartPtr<Dtk_RevolutionSurface>;
1034 public:
1035 
1036  //downcasting
1037  int DtkDynamicType(const int& inId);
1039 
1040  //constructors
1049  //SetAsDeprecated("Undefined", "Use Dtk_StandardRevolutionSurfacePtr")
1050  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());
1052 
1053  //methods
1059  const Dtk_dir& GetRevolutionAxis() const;
1062  const Dtk_pnt& GetAxisPosition() const;
1065  const Dtk_dir& GetXDirection()const;
1071  const Dtk_dir& GetZDirection()const;
1075 
1076  // Obsolete Function
1078 
1080  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1081  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1082  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1083  //virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1084  virtual Dtk_Size_t GetSize() const;
1085  virtual Dtk_ErrorStatus _Store(void*);
1090 
1091  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1092  virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1093 };
1094 
1105 {
1106 protected:
1107  struct Dtk_Handle; // Not defined here
1108  Dtk_Handle *_Private; // Handle
1112  Dtk_StandardRevolutionSurface(const Dtk_CurvePtr& inRevolvedCurve,const Dtk_pnt& inAxisposition,const Dtk_dir& inRevolutionAxis,const Dtk_dir& inVDirection,const Dtk_dir&inYDir);
1113  inline virtual Dtk_Object* Clone() { return new Dtk_StandardRevolutionSurface(*this); }
1115 private:
1116  void _Init();
1117  void _Copy(const Dtk_StandardRevolutionSurface& s);
1118  void _Reset();
1120 public:
1121 
1122  //downcasting
1123  int DtkDynamicType(const int& inId);
1125 
1126  //constructors
1134  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());
1136 
1137  //methods
1143  const Dtk_dir& GetRevolutionAxis() const;
1146  const Dtk_pnt& GetAxisPosition() const;
1149  const Dtk_dir& GetXDirection()const;
1155  const Dtk_dir& GetZDirection()const;
1159 
1160  // Obsolete Function
1162 
1164  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1165  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1166  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1167  //virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1168  virtual Dtk_Size_t GetSize() const;
1169  virtual Dtk_ErrorStatus _Store(void*);
1174 
1175  virtual Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1176  virtual Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1177 };
1178 
1179 
1190 {
1191 protected:
1192  struct Dtk_Handle; // Not defined here
1193  Dtk_Handle *_Private; // Handle
1197  Dtk_LinearExtrusionSurface(const Dtk_CurvePtr& inExtrudedCurve,const Dtk_dir& inExtrusionAxis);
1198  inline virtual Dtk_Object* Clone() { return new Dtk_LinearExtrusionSurface(*this); }
1199 
1201 private:
1202  void _Init();
1203  void _Copy(const Dtk_LinearExtrusionSurface& s);
1204  void _Reset();
1206 public:
1207 
1208  //downcasting
1209  int DtkDynamicType(const int& inId);
1211 
1212  //constructors
1217  static Dtk_LinearExtrusionSurfacePtr Create(const Dtk_CurvePtr& inExtrudedCurve,const Dtk_dir& inExtrusionAxis);
1219 
1220  //methods
1222  const Dtk_dir& GetExtrusionAxis() const;
1223 
1225  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1226  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1227  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1228  //virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1229  virtual Dtk_Size_t GetSize() const;
1230  virtual Dtk_ErrorStatus _Store(void*);
1234  virtual Dtk_bool IsUPeriodic() const;
1235  virtual Dtk_bool IsVPeriodic() const;
1236 
1237  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1238 };
1239 
1247 
1249 {
1250 protected:
1251  struct Dtk_Handle; // Not defined here
1252  Dtk_Handle *_Private; // Handle
1256  Dtk_RuledSurface(const Dtk_CurvePtr& inFirstCurve,const Dtk_CurvePtr& inSecondCurve);
1257  inline virtual Dtk_Object* Clone() { return new Dtk_RuledSurface(*this); }
1258 
1260 private:
1261  void _Init();
1262  void _Copy(const Dtk_RuledSurface& s);
1263  void _Reset();
1264  friend class Dtk_SmartPtr<Dtk_RuledSurface>;
1265 public:
1266 
1267  //downcasting
1268  int DtkDynamicType(const int& inId);
1270 
1271  //constructors
1276  static Dtk_RuledSurfacePtr Create(const Dtk_CurvePtr& inFirstCurve,const Dtk_CurvePtr& inSecondCurve);
1277  static Dtk_RuledSurfacePtr Create(const Dtk_RuledSurface& inSurfToCopy);
1278 
1279  //methods
1282 
1284  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1285  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1286  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1287  virtual Dtk_Size_t GetSize() const;
1288  virtual Dtk_ErrorStatus _Store(void*);
1291 
1292  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1293  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1294 };
1295 
1306 {
1307 protected:
1308  struct Dtk_Handle; // Not defined here
1309  Dtk_Handle *_Private; // Handle
1313  Dtk_CylindricalSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inUDirection, const Dtk_dir& inYDirection, const Dtk_Double64& inRadius);
1314  inline virtual Dtk_Object* Clone() { return new Dtk_CylindricalSurface(*this); }
1316 private:
1317  void _Init();
1318  void _Copy(const Dtk_CylindricalSurface& s);
1319  void _Reset();
1320  friend class Dtk_SmartPtr<Dtk_CylindricalSurface>;
1321 public:
1322 
1323  //downcasting
1324  int DtkDynamicType(const int& inId);
1326 
1327  //constructors
1335  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());
1337 
1338  //methods
1342  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1343  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1344  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1345  virtual Dtk_Size_t GetSize() const;
1346  virtual Dtk_ErrorStatus _Store(void*);
1349 
1350  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1351  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1352 };
1353 
1354 
1365 {
1366 protected:
1367  struct Dtk_Handle; // Not defined here
1368  Dtk_Handle *_Private; // Handle
1372  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);
1373  inline virtual Dtk_Object* Clone() { return new Dtk_ConicalSurface(*this); }
1374 
1376 private:
1377  void _Init();
1378  void _Copy(const Dtk_ConicalSurface& s);
1379  void _Reset();
1380  friend class Dtk_SmartPtr<Dtk_ConicalSurface>;
1381 public:
1382 
1383  //downcasting
1384  int DtkDynamicType(const int& inId);
1386 
1387  //constructors
1396  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());
1397  static Dtk_ConicalSurfacePtr Create(const Dtk_ConicalSurface& inSurfToCopy);
1398 
1399  //methods
1402 
1403 
1405  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1406  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1407  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1408  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1409  virtual Dtk_Size_t GetSize() const;
1410  virtual Dtk_ErrorStatus _Store(void*);
1413 };
1424 {
1425 protected:
1426  struct Dtk_Handle; // Not defined here
1427  Dtk_Handle *_Private; // Handle
1431  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);
1432  inline virtual Dtk_Object* Clone() { return new Dtk_ToroidalSurface(*this); }
1433 
1435 private:
1436  void _Init();
1437  void _Copy(const Dtk_ToroidalSurface& s);
1438  void _Reset();
1439  friend class Dtk_SmartPtr<Dtk_ToroidalSurface>;
1440 public:
1441 
1442  //downcasting
1443  int DtkDynamicType(const int& inId);
1445 
1446  //constructors
1455  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());
1457 
1458  //methods
1461 
1463  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1464  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1465  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1466  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1467  virtual Dtk_Size_t GetSize() const;
1468  virtual Dtk_ErrorStatus _Store(void*);
1471  virtual Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1472  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1473  virtual Dtk_bool IsUPeriodic() const;
1474  virtual Dtk_bool IsVPeriodic() const;
1475 };
1476 
1487 {
1488 protected:
1489  struct Dtk_Handle; // Not defined here
1490  Dtk_Handle *_Private; // Handle
1494  Dtk_SphericalSurface(const Dtk_pnt& inOrigin,const Dtk_dir& inNormal, const Dtk_dir& inYDir, const Dtk_dir& inUDirection,const Dtk_Double64& inRadius);
1495  inline virtual Dtk_Object* Clone() { return new Dtk_SphericalSurface(*this); }
1496 
1498 private:
1499  void _Init();
1500  void _Copy(const Dtk_SphericalSurface& s);
1501  void _Reset();
1502  friend class Dtk_SmartPtr<Dtk_SphericalSurface>;
1503 public:
1504 
1505  //downcasting
1506  int DtkDynamicType(const int& inId);
1508 
1509  //constructors
1517  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());
1519 
1520  //methods
1522 
1524  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1525  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1526  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1527  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1528  virtual Dtk_Size_t GetSize() const ;
1529  virtual Dtk_ErrorStatus _Store(void*);
1532 
1533  Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1534  Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1535  //Dtk_ErrorStatus SetDomain(Dtk_Double64 inDomain[]);
1537  virtual Dtk_bool IsUPeriodic() const;
1539  virtual Dtk_bool IsVPeriodic() const;
1540 };
1541 
1552 {
1553 protected:
1554  struct Dtk_Handle; // Not defined here
1555  Dtk_Handle *_Private; // Handle
1559  Dtk_OffsetSurface(const Dtk_SurfacePtr &inSurf, const Dtk_Double64& inOffset);
1560  inline virtual Dtk_Object* Clone() { return new Dtk_OffsetSurface(*this); }
1562 private:
1563  void _Init();
1564  void _Copy(const Dtk_OffsetSurface& s);
1565  void _Reset();
1566  friend class Dtk_SmartPtr<Dtk_OffsetSurface>;
1567 public:
1568 
1569  //downcasting
1570  int DtkDynamicType(const int& inId);
1572 
1573  //constructors
1578  static Dtk_OffsetSurfacePtr Create(const Dtk_SurfacePtr &inSurf, const Dtk_Double64& inOffset);
1579  static Dtk_OffsetSurfacePtr Create(const Dtk_OffsetSurface& inSurfToCopy);
1580 
1581  //methods
1584 
1586  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1587  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1588  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1589  virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const;
1590  virtual Dtk_Size_t GetSize() const;
1591  virtual Dtk_ErrorStatus _Store(void*);
1594  virtual void PrepareTransfo ();
1595 
1598 
1599  virtual Dtk_ErrorStatus _ComputeAnyDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1600  virtual Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff,int inVmaxdiff,int inUVdiffsummax,Dtk_dir* outdirs,int exttype) const;
1601  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;
1602 };
1603 
1605 {
1606 protected:
1607  struct Dtk_Handle; // Not defined here
1608  Dtk_Handle *_Private; // Handle
1612  Dtk_FilletSurface(const Dtk_CurvePtr &inSpine, const Dtk_Double64& inAngle1, const Dtk_Double64& inAngle2,const Dtk_Double64& inConstantRadius,const Dtk_tab<Dtk_CurvePtr> &inAdjacentCurve,
1613  const Dtk_tab<Dtk_SurfacePtr> &inAdjacentSurface, const Dtk_tab<Dtk_Double64 >& inSpineParam,
1614  const Dtk_tab<Dtk_Double64 > &inKnots,const Dtk_Double64& inRadius1,const Dtk_Double64& inRadius2,const Dtk_NurbsSurfacePtr &inCorrespondingNurbs = NULL);
1615  inline virtual Dtk_Object* Clone() { return new Dtk_FilletSurface(*this); }
1616 
1618 private:
1619  void _Init();
1620  void _Copy(const Dtk_FilletSurface& s);
1621  void _Reset();
1622  friend class Dtk_SmartPtr<Dtk_FilletSurface>;
1623 public:
1624 
1625  //downcasting
1626  int DtkDynamicType(const int& inId);
1628 
1629  //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);
1633  static Dtk_FilletSurfacePtr Create(const Dtk_FilletSurface& inSurfToCopy);
1634 
1635  //methods
1644 
1647 
1649  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1650  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1651  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1652  virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff,int inVdiff,Dtk_dir &outdir,int exttype) const;
1653  virtual Dtk_ErrorStatus _ComputeMultipleDerivative( Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir* outdirs, int extendtype ) const;
1654  virtual Dtk_Size_t GetSize() const;
1655  virtual Dtk_ErrorStatus _Store(void*);
1658 };
1659 
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);
1697 
1698  //methods
1701 
1703  virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const;
1704  virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const;
1705  virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const;
1706  virtual Dtk_Size_t GetSize() const;
1707  virtual Dtk_ErrorStatus _Store(void*);
1710  Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int extendtype) const;
1711  Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir* outdirs, int exttype) const;
1712 };
1713 
1720 {
1721 private:
1722  struct Dtk_Handle; // Not defined here
1723  Dtk_Handle *_Private; // Handle
1724 
1725  enum { _typeID = DTK_TYPE_MESH_SURFACE };
1726  Dtk_MeshSurface();
1727  Dtk_MeshSurface( const Dtk_MeshSurface& s );
1728  virtual ~Dtk_MeshSurface();
1729  inline virtual Dtk_Object* Clone() {return new Dtk_MeshSurface( *this );}
1730  Dtk_MeshSurface( const std::vector<Dtk_pnt>& inP, const std::vector<Dtk_UInt32>& index );
1731  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 );
1732 private:
1733  void _Init();
1734  friend class Dtk_SmartPtr<Dtk_MeshSurface>;
1735  void _Copy( const Dtk_MeshSurface& s );
1736  void _Reset();
1737 
1738 
1739 public:
1740  int DtkDynamicType( const int& inId );
1746  virtual Dtk_ErrorStatus GetDomain( Dtk_Double64 outDomain[] ) const;
1749  virtual Dtk_NurbsSurfacePtr ToNurbs( const Dtk_Double64 *inTrimDomain = NULL ) const;
1752  virtual Dtk_ErrorStatus ComputeUVPoint( const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt ) const;
1753 
1754  Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int extendtype) const;
1759 
1763 
1764  //Internal Use
1765  static Dtk_MeshSurfacePtr Create( const std::vector<Dtk_pnt>& inP, const std::vector<Dtk_UInt32>& index );
1766  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 );
1767  const std::vector<Dtk_pnt>& GetVertexArray() const;
1768  const std::vector<Dtk_dir>& GetNormArray() const;
1769  const std::vector<Dtk_UInt32>& GetVertexArrayIndex() const;
1770  const std::vector<Dtk_UInt32>& GetAttrArrayIndex() const;
1771 
1772 };
1773 
1774 /*************************************** END SURFACES **********************************/
1775 
1776 
1777 #endif
Dtk_PlaneSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:962
Dtk_CylindricalSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Polyline::~Dtk_Polyline
virtual ~Dtk_Polyline()
Default destructor.
Dtk_Curve::Reverse
virtual void Reverse()=0
Reverse Curve.
Dtk_ToroidalSurface::get_type_detk
type_detk get_type_detk() const
Dtk_NurbsCurve::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_Parabola::GetFocalDistance
Dtk_Double64 GetFocalDistance() const
Dtk_Ellipse::Create
static Dtk_EllipsePtr Create(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inRadius)
Dtk_Polyline::Point
Dtk_pnt & Point(const Dtk_Size_t &inIndex)
Dtk_Surface::IsVPeriodic
virtual Dtk_bool IsVPeriodic() const
Return DTK_TRUE If Periodic following V parameter.
Dtk_Line::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_Conic::GetZDirection
const Dtk_dir & GetZDirection() const
Dtk_StandardRevolutionSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_PlaneSurface::GetNormal
Dtk_dir GetNormal() const
Dtk_Line::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:429
Dtk_NurbsSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_ToroidalSurface::Create
static Dtk_ToroidalSurfacePtr Create(const Dtk_ToroidalSurface &inSurfToCopy)
Dtk_Line::ComputeBoundingBox
virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, Dtk_bool inMorePrecise=0)
Compute Bounding Box.
Dtk_Conic::GetNormalDirection
const Dtk_dir & GetNormalDirection() const
Get Normal vector of Conic (inNormal on schema)
Dtk_NurbsSurface::SetIsVPeriodic
void SetIsVPeriodic(Dtk_bool inPeriodicFlag)
Dtk_FilletSurface::GetNumAdjacentCurves
Dtk_Size_t GetNumAdjacentCurves() const
Dtk_TransformedSurface::Dtk_TransformedSurface
Dtk_TransformedSurface(const Dtk_TransformedSurface &s)
Dtk_RevolutionSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1023
Dtk_NurbsSurface::~Dtk_NurbsSurface
virtual ~Dtk_NurbsSurface()
Dtk_transfo
This is the Transformation dedicated class.
Definition: dtk_transfo.hpp:19
Dtk_CylindricalSurface::DtkDynamicCast
static Dtk_CylindricalSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_NurbsCurve::IsPeriodic
virtual Dtk_bool IsPeriodic() const
return DTK_TRUE if nurbs is periodic
Dtk_Line::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_Line::Dtk_Line
Dtk_Line(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2)
constructor
Dtk_RuledSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_OffsetSurface::~Dtk_OffsetSurface
virtual ~Dtk_OffsetSurface()
Dtk_Curve::Dtk_Curve
Dtk_Curve(const Dtk_Curve &s)
Dtk_StandardRevolutionSurface::GetYDirection
Dtk_dir GetYDirection() const
Give Y Direction (Axis Placement can be indirect )
Dtk_ToroidalSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Curve::ComputeUPointDir
virtual Dtk_ErrorStatus ComputeUPointDir(const Dtk_Double64 &inU, Dtk_pnt &outPoint, Dtk_dir &outDir) const
Compute point and dir on U parameter.
Dtk_StandardRevolutionSurface
This is the Revolution Surface Class. U parametrisation : revolved curve parametrisation V parametris...
Definition: util_geom_dtk.hpp:1105
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:1487
DTK_TYPE_MESH_SURFACE
@ DTK_TYPE_MESH_SURFACE
Definition: define.h:611
Dtk_NurbsCurve::Reparam
Dtk_ErrorStatus Reparam(const Dtk_Double64 &inUmin, const Dtk_Double64 &inUmax)
Set Curve parametrisation domain.
Dtk_NurbsSurface::get_type_detk
type_detk get_type_detk() const
Dtk_Conic::~Dtk_Conic
virtual ~Dtk_Conic()
Dtk_CylindricalSurface::get_type_detk
type_detk get_type_detk() const
Dtk_MeshSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
No parametrisation.
Dtk_MeshSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
No parametrisation.
Dtk_ConicalSurface
This is the Conical Surface Class. U parametrisation : [0.0 - 2PI] 0.0 is given by inUDirection or in...
Definition: util_geom_dtk.hpp:1365
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_LinearExtrusionSurface::Create
static Dtk_LinearExtrusionSurfacePtr Create(const Dtk_LinearExtrusionSurface &inSurfToCopy)
Dtk_NurbsSurface::Dtk_NurbsSurface
Dtk_NurbsSurface(const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnots, const Dtk_tab< Dtk_Double64 > &inVKnots, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE)
Dtk_ToroidalSurface::Create
static Dtk_ToroidalSurfacePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_Double64 &inMajorRadius, const Dtk_Double64 &inMinorRadius, const Dtk_dir &inYDir=Dtk_dir())
Create Dtk_ToroidalSurface.
Dtk_Conic::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:507
Dtk_StandardRevolutionSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_PlaneSurface::Create
static Dtk_PlaneSurfacePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_dir &inVDirection=Dtk_dir())
Create an infinite plane surface.
DTK_TOLERANCE
#define DTK_TOLERANCE
Definition: str_def.h:7
Dtk_PlaneSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_MeshSurface::_ComputeAnyDerivative
Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int extendtype) const
Dtk_SphericalSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_MeshSurface::Create
static Dtk_MeshSurfacePtr Create(const std::vector< Dtk_pnt > &inP, const std::vector< Dtk_UInt32 > &index)
Dtk_Hyperbola::GetSemiImageAxis
Dtk_Double64 GetSemiImageAxis() const
Dtk_Line::Create
static Dtk_LinePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection)
Dtk_Ellipse::Dtk_Ellipse
Dtk_Ellipse(const Dtk_Ellipse &inEllipseToCopy)
DTK_TYPE_CONIC
@ DTK_TYPE_CONIC
Definition: define.h:59
Dtk_NurbsSurface::ForceG1Continuity
Dtk_NurbsSurfacePtr ForceG1Continuity(Dtk_Double64 tolerance_to_remove=0.0005) const
Dtk_Polyline::Dtk_Polyline
Dtk_Polyline(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2)
constructor
Dtk_RuledSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1257
Dtk_TransformedSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1673
Dtk_RuledSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1253
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:1432
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_NurbsCurvePtr &s, const Dtk_tab< Dtk_Double64 > &inKnotsValues, const Dtk_tab< Dtk_UChar8 > &inKnotsMultiplicities)
Dtk_NurbsSurface::Create
static Dtk_NurbsSurfacePtr Create(const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnots, const Dtk_tab< Dtk_Double64 > &inVKnots, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE)
Dtk_StandardRevolutionSurface::SetTrimUVBox
Dtk_ErrorStatus SetTrimUVBox(Dtk_Double64 inDomain[])
Set Surface Trim Box : Umin = inTrimValues[0] Umax = inTrimValues[1] Vmin = inTrimValues[2] Vmax = in...
Dtk_Curve::ToNurbs
virtual Dtk_NurbsCurvePtr ToNurbs() const =0
Convert Curve to nurbs.
Dtk_Hyperbola::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:694
Dtk_NurbsSurface::GetUKnotMultiplicity
Dtk_UInt32 GetUKnotMultiplicity(const Dtk_Size_t &inIndex) const
Dtk_FilletSurface::Dtk_FilletSurface
Dtk_FilletSurface()
Dtk_Curve::SetTrimmingParameters
virtual Dtk_ErrorStatus SetTrimmingParameters(const Dtk_Double64 &inUmin, const Dtk_Double64 &inUmax)
Set Trim parameter for curve.
Dtk_SphericalSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_PlaneSurface::GetVDirection
Dtk_dir GetVDirection() const
Dtk_Parabola::Dtk_Parabola
Dtk_Parabola()
Dtk_Parabola::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:641
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:1194
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:22
Dtk_FilletSurface::~Dtk_FilletSurface
virtual ~Dtk_FilletSurface()
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_UInt32 &inDegree, const Dtk_tab< Dtk_Double64 > &inKnotsValues, const Dtk_tab< Dtk_UChar8 > &inKnotsMultiplicities, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >())
Dtk_Curve::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const =0
Compute point on U parameter.
Dtk_RevolutionSurface::Dtk_RevolutionSurface
Dtk_RevolutionSurface()
Dtk_SphericalSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1491
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()
Default constructor.
Dtk_OffsetSurface::ComputeOffsetedSurface
Dtk_SurfacePtr ComputeOffsetedSurface()
Compute the result Surface with the offset applied. For some surfaces, their type can be conserved,...
catiav5w::inTransfo
const Dtk_string const Dtk_transfo & inTransfo
Definition: catiav5w.hpp:619
Dtk_FilletSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1615
Dtk_Point::~Dtk_Point
virtual ~Dtk_Point()
Dtk_CylindricalSurface::Dtk_CylindricalSurface
Dtk_CylindricalSurface(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_dir &inYDirection, const Dtk_Double64 &inRadius)
DTK_TYPE_POLYLINE
@ DTK_TYPE_POLYLINE
Definition: define.h:58
Dtk_Polyline::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_Curve::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outU) const =0
Compute U parameter from point.
Dtk_PlaneSurface::GetZDirection
Dtk_dir GetZDirection() const
Dtk_OffsetSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
DTK_TYPE_SPHERICAL_SURFACE
@ DTK_TYPE_SPHERICAL_SURFACE
Definition: define.h:95
Dtk_Polyline::AddPoint
void AddPoint(const Dtk_Double64 &inX, const Dtk_Double64 &inY, const Dtk_Double64 &inZ=0.0)
Dtk_RevolutionSurface::GetRadius
Dtk_Double64 GetRadius() const
Get Radius at origin.
Dtk_PlaneSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_TransformedSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_NurbsSurface::GetUnpackedUKnot
Dtk_Double64 * GetUnpackedUKnot() const
Dtk_SphericalSurface::Create
static Dtk_SphericalSurfacePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_Double64 &inRadius, const Dtk_dir &inYDir=Dtk_dir())
Create Dtk_SphericalSurface.
Dtk_ToroidalSurface::Dtk_ToroidalSurface
Dtk_ToroidalSurface()
Dtk_NurbsCurve::ComputeBoundingBox
Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, Dtk_bool inMorePrecise=0)
Compute Bounding Box.
Dtk_Polyline::Create
static Dtk_PolylinePtr Create(const Dtk_tab< Dtk_pnt > &inPoints)
Dtk_StandardRevolutionSurface::Normalize
Dtk_ErrorStatus Normalize()
Dtk_PlaneSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_Curve::Dtk_Curve
Dtk_Curve()
Dtk_TransformedSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp: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:1424
Dtk_NurbsSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Conic::ToNurbs
virtual Dtk_NurbsCurvePtr ToNurbs() const
Get Nurbs corresponding to conic (with trim)
Dtk_RevolutionSurface::~Dtk_RevolutionSurface
virtual ~Dtk_RevolutionSurface()
Dtk_NurbsSurface::IsUniform
Dtk_bool IsUniform() const
Dtk_UInt32
uint32_t Dtk_UInt32
Definition: define.h:688
Dtk_PlaneSurface::Dtk_PlaneSurface
Dtk_PlaneSurface(const Dtk_PlaneSurface &s)
Dtk_Line::~Dtk_Line
virtual ~Dtk_Line()
Default destructor.
Dtk_SphericalSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_ToroidalSurface::Dtk_ToroidalSurface
Dtk_ToroidalSurface(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inYDir, const Dtk_dir &inUDirection, const Dtk_Double64 &inMajorRadius, const Dtk_Double64 &inMinorRadius)
Dtk_Size_t
size_t Dtk_Size_t
Definition: define.h:712
Dtk_Curve::GetTrimUMax
Dtk_Double64 GetTrimUMax() const
Get end Trim parameter.
Dtk_NurbsSurface::Transform
virtual Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_StandardRevolutionSurface::DtkDynamicCast
static Dtk_StandardRevolutionSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_StandardRevolutionSurface::SetStartAngle
Dtk_ErrorStatus SetStartAngle(Dtk_Double64 inAngle)
Dtk_PlaneSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_ToroidalSurface::GetMajorRadius
Dtk_Double64 GetMajorRadius() const
Dtk_Conic::get_type_detk
type_detk get_type_detk() const
Dtk_Curve::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Curve::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_Ellipse::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
transform
Dtk_OffsetSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Point::Dtk_Point
Dtk_Point(const Dtk_Point &s)
Dtk_Hyperbola::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_ToroidalSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Point::Create
static Dtk_PointPtr Create(const Dtk_pnt &inToCopy)
Dtk_Curve::ComputeBoundingBox
virtual Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, Dtk_bool inMorePrecise=0)
Compute Bounding Box.
Dtk_Polyline::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_Conic::GetCenterPoint
const Dtk_pnt & GetCenterPoint() const
Get Center of Conic (inCenter on schema)
Dtk_NurbsSurface::Point
Dtk_pnt & Point(const Dtk_Size_t &inUIndex, const Dtk_Size_t &inVIndex)
Dtk_RevolutionSurface::GetRevolvedCurve
Dtk_CurvePtr GetRevolvedCurve() const
GetRevolvedCurve.
Dtk_NurbsCurve::IsUniform
Dtk_bool IsUniform() const
return DTK_TRUE if knots are uniform
Dtk_Surface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:760
Dtk_ToroidalSurface::_ComputeMultipleDerivative
Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_LinearExtrusionSurface::Dtk_LinearExtrusionSurface
Dtk_LinearExtrusionSurface()
Dtk_Surface::IsUPeriodic
virtual Dtk_bool IsUPeriodic() const
Return DTK_TRUE If Periodic following U parameter.
Dtk_NurbsCurve::GetNumPoints
Dtk_Size_t GetNumPoints() const
return Num Control points
Dtk_Conic::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_RevolutionSurface::Dtk_RevolutionSurface
Dtk_RevolutionSurface(const Dtk_RevolutionSurface &inSurfToCopy)
Dtk_Line::ComputeUDir
virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64 &inU, Dtk_dir &outDir) const
Compute dir on U parameter.
Dtk_PlaneSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_ConicalSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_SphericalSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Curve
Dtk_Curve is a geometrical entity representing a curve. It is an abstract class that cannot be instan...
Definition: util_geom_dtk.hpp:87
Dtk_RevolutionSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_OffsetSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1554
Dtk_RevolutionSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_ConicalSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Line::Dtk_Line
Dtk_Line(const Dtk_Line &inLineToCopy)
constructor
Dtk_Hyperbola::Dtk_Hyperbola
Dtk_Hyperbola(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inSemiAxis, const Dtk_Double64 &inSemiImageAxis)
Dtk_Parabola::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Return First point.
Dtk_Hyperbola::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:692
Dtk_StandardRevolutionSurface::get_type_detk
type_detk get_type_detk() const
Dtk_ConicalSurface::get_type_detk
type_detk get_type_detk() const
Dtk_Point::GetCoordinates
Dtk_ErrorStatus GetCoordinates(Dtk_pnt &pnt) const
Dtk_TransformedSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_LinearExtrusionSurface::_ComputeAnyDerivative
Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_NurbsCurve::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outParameter) const
Compute pparameter.
Dtk_Polyline::Create
static Dtk_PolylinePtr Create(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2)
Dtk_LinearExtrusionSurface::get_type_detk
type_detk get_type_detk() const
Dtk_Line::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Ellipse::GetMinorRadius
Dtk_Double64 GetMinorRadius() const
Dtk_NurbsCurve::IsRationnal
Dtk_bool IsRationnal() const
return DTK_TRUE if one weight != 1
Dtk_NurbsSurface::Reparam
virtual Dtk_ErrorStatus Reparam(Dtk_Double64 inDomain[])
Dtk_RevolutionSurface::DtkDynamicCast
static Dtk_RevolutionSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_FilletSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_RevolutionSurface::GetZDirection
const Dtk_dir & GetZDirection() const
GetZDirection.
Dtk_LinearExtrusionSurface::IsUPeriodic
virtual Dtk_bool IsUPeriodic() const
Return DTK_TRUE If Periodic following U parameter.
DTK_TYPE_PARABOLA
@ DTK_TYPE_PARABOLA
Definition: define.h:63
Dtk_Parabola::Dtk_Parabola
Dtk_Parabola(const Dtk_Parabola &inToCopy)
Dtk_StandardRevolutionSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1107
Dtk_SphericalSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1489
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:645
Dtk_Polyline::Point
const Dtk_pnt & Point(const Dtk_Size_t &inIndex) const
return the point at place inIndex
Dtk_Polyline::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Compute dir on U parameter.
Dtk_FilletSurface::Create
static Dtk_FilletSurfacePtr Create(const Dtk_FilletSurface &inSurfToCopy)
Dtk_CylindricalSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
DTK_FALSE
#define DTK_FALSE
Definition: define.h:728
Dtk_NurbsSurface::DtkDynamicCast
static Dtk_NurbsSurface * DtkDynamicCast(Dtk_Object *s)
DTK_TYPE_NURBS_CURVE
@ DTK_TYPE_NURBS_CURVE
Definition: define.h:494
Dtk_Polyline::Dtk_Polyline
Dtk_Polyline(const Dtk_Polyline &inPolylineToCopy)
constructor
Dtk_Parabola::~Dtk_Parabola
virtual ~Dtk_Parabola()
Dtk_Ellipse::DtkDynamicCast
static Dtk_Ellipse * DtkDynamicCast(Dtk_Object *inObject)
Dtk_bool
char Dtk_bool
Definition: define.h:725
Dtk_NurbsCurve::GetWeight
Dtk_Double64 GetWeight(const Dtk_Size_t &inIndex) const
return weight
Dtk_ConicalSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1369
Dtk_Polyline::_Private
Dtk_Handle * _Private
Handle
Definition: util_geom_dtk.hpp:340
Dtk_RevolutionSurface::GetYDirection
Dtk_dir GetYDirection() const
Give Y Direction (Axis Placement can be indirect )
Dtk_Hyperbola::get_type_detk
type_detk get_type_detk() const
Dtk_Curve::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_OffsetSurface::Dtk_OffsetSurface
Dtk_OffsetSurface(const Dtk_SurfacePtr &inSurf, const Dtk_Double64 &inOffset)
Dtk_Hyperbola::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_RevolutionSurface::_ComputeMultipleDerivative
virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_Surface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_Ellipse::Create
static Dtk_EllipsePtr Create(const Dtk_Ellipse &inEllipseToCopy)
Dtk_Ellipse::Dtk_Ellipse
Dtk_Ellipse()
Dtk_Curve::GetTrimEndPoint
Dtk_pnt GetTrimEndPoint() const
Return last trim point.
Dtk_NurbsCurve::Point
const Dtk_pnt & Point(const Dtk_Size_t &inIndex) const
return the point at place inIndex
Dtk_OffsetSurface::Create
static Dtk_OffsetSurfacePtr Create(const Dtk_OffsetSurface &inSurfToCopy)
Dtk_Conic::Create
static Dtk_ConicPtr Create(const Dtk_Conic &inConicToCopy)
Dtk_FilletSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_LinearExtrusionSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_Conic::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_Hyperbola::Dtk_Hyperbola
Dtk_Hyperbola()
Dtk_OffsetSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_PlaneSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve(const Dtk_NurbsCurve &s)
Dtk_Polyline::DtkDynamicCast
static Dtk_Polyline * DtkDynamicCast(Dtk_Object *inObjectToCast)
Dtk_RuledSurface::get_type_detk
type_detk get_type_detk() const
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve()
Dtk_Curve::GetDimension
Dtk_Size_t GetDimension() const
Return 2 or 3.
Dtk_FilletSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Hyperbola::GetDomain
Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_Surface::~Dtk_Surface
virtual ~Dtk_Surface()
Dtk_SphericalSurface::Create
static Dtk_SphericalSurfacePtr Create(const Dtk_SphericalSurface &inSurfToCopy)
Dtk_LinearExtrusionSurface
This is the Linear Extrusion Surface Class. U parametrisation : Curve to be extruded V parametrisatio...
Definition: util_geom_dtk.hpp:1190
Dtk_FilletSurface::Create
static Dtk_FilletSurfacePtr Create(const Dtk_CurvePtr &inSpine, const Dtk_Double64 &inAngle1, const Dtk_Double64 &inAngle2, const Dtk_tab< Dtk_CurvePtr > &inAdjacentCurve, const Dtk_tab< Dtk_SurfacePtr > &inAdjacentSurface, const Dtk_tab< Dtk_Double64 > &inSpineParam=Dtk_tab< Dtk_Double64 >(), const Dtk_tab< Dtk_Double64 > &inKnots=Dtk_tab< Dtk_Double64 >(), const Dtk_Double64 &inConstantRadius=-1.0, const Dtk_NurbsSurfacePtr &inCorrespondingNurbs=NULL)
Dtk_Double64
double Dtk_Double64
Definition: define.h:699
Dtk_TransformedSurface::GetSurface
Dtk_SurfacePtr GetSurface() const
Dtk_OffsetSurface::Dtk_OffsetSurface
Dtk_OffsetSurface(const Dtk_OffsetSurface &s)
Dtk_CylindricalSurface::Create
static Dtk_CylindricalSurfacePtr Create(const Dtk_CylindricalSurface &inSurfToCopy)
Dtk_PlaneSurface::GetUDirection
Dtk_dir GetUDirection() const
Dtk_Hyperbola::ToNurbs
Dtk_NurbsCurvePtr ToNurbs() const
Get Nurbs corresponding to conic (with trim)
Dtk_ToroidalSurface::GetMinorRadius
Dtk_Double64 GetMinorRadius() const
Dtk_PlaneSurface::Dtk_PlaneSurface
Dtk_PlaneSurface()
Dtk_Ellipse::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_ConicalSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_RevolutionSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Polyline::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:353
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:344
Dtk_NurbsSurface::GetNumPointsU
Dtk_Size_t GetNumPointsU() const
Dtk_RuledSurface::DtkDynamicCast
static Dtk_RuledSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_Surface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const =0
Compute 3D point.
Dtk_Parabola::Dtk_Parabola
Dtk_Parabola(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inMajorRadius)
Dtk_NurbsCurve::GetKnotMultiplicity
Dtk_UInt32 GetKnotMultiplicity(const Dtk_Size_t &inIndex) const
return knot multiplicity at inIndex place
DTK_TYPE_NURBS_SURFACE
@ DTK_TYPE_NURBS_SURFACE
Definition: define.h:495
Dtk_NurbsSurface::IsPlane
Dtk_bool IsPlane() const
Dtk_Parabola::Create
static Dtk_ParabolaPtr Create(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inFocal)
Dtk_LinearExtrusionSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1192
Dtk_NurbsCurve::get_type_detk
type_detk get_type_detk() const
Return Curve type.
Dtk_Ellipse::ComputeUDir
virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64 &inU, Dtk_dir &outDir) const
Compute dir on U parameter.
Dtk_PlaneSurface::Create
static Dtk_PlaneSurfacePtr Create(const Dtk_PlaneSurface &inPlaneToCopy)
Dtk_StandardRevolutionSurface::Dtk_StandardRevolutionSurface
Dtk_StandardRevolutionSurface(const Dtk_StandardRevolutionSurface &inSurfToCopy)
Dtk_FilletSurface
Definition: util_geom_dtk.hpp:1605
util_mesh_dtk.hpp
Dtk_ToroidalSurface::Dtk_ToroidalSurface
Dtk_ToroidalSurface(const Dtk_ToroidalSurface &s)
Dtk_Line::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Return First point.
Dtk_NurbsCurve::_KnotRemoval
int _KnotRemoval(const Dtk_Double64 &inU, const int &inNum, const Dtk_Double64 &inTolerance)
Dtk_NurbsSurface::_KnotRemoval
int _KnotRemoval(const Dtk_Double64 &inParameter, const int &inOccurence, const Dtk_bool &inUSplit, const Dtk_Double64 &inTolerance)
Dtk_Polyline::Dtk_Polyline
Dtk_Polyline(const Dtk_tab< Dtk_pnt > &inPoints)
constructor
DTK_TYPE_SURFACE
@ DTK_TYPE_SURFACE
Definition: define.h:114
Dtk_Ellipse::IsCircle
Dtk_bool IsCircle() const
Dtk_Surface::SetTrimUVBox
virtual Dtk_ErrorStatus SetTrimUVBox(Dtk_Double64 inTrimValues[])
Set Surface Trim Box : Umin = inTrimValues[0] Umax = inTrimValues[1] Vmin = inTrimValues[2] Vmax = in...
Dtk_SphericalSurface::_ComputeAnyDerivative
Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_NurbsCurve::Reverse
virtual void Reverse()
Reverse Curve.
DTK_TYPE_STANDARD_REVOLUTION_SURFACE
@ DTK_TYPE_STANDARD_REVOLUTION_SURFACE
Definition: define.h:497
Dtk_CylindricalSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_ToroidalSurface::IsUPeriodic
virtual Dtk_bool IsUPeriodic() const
Return DTK_TRUE If Periodic following U parameter.
Dtk_Surface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const =0
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_ConicalSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_FilletSurface::GetParam1
Dtk_Double64 GetParam1() const
Dtk_Line::GetDirection
Dtk_dir GetDirection() const
return direction of line
Dtk_CylindricalSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1308
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:1306
Dtk_RuledSurface::Create
static Dtk_RuledSurfacePtr Create(const Dtk_RuledSurface &inSurfToCopy)
Dtk_MeshSurface::GetAttrArrayIndex
const std::vector< Dtk_UInt32 > & GetAttrArrayIndex() const
Dtk_ToroidalSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_NurbsCurve::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:191
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:438
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:1552
DTK_TYPE_POINT
@ DTK_TYPE_POINT
Definition: define.h:488
Dtk_NurbsCurve::_DegreeElevation
Dtk_ErrorStatus _DegreeElevation(const Dtk_Size_t &inDegreeElevation)
Dtk_Point::GetCoordinates
Dtk_ErrorStatus GetCoordinates(Dtk_Double64 &x, Dtk_Double64 &y, Dtk_Double64 &z) const
Get Coordinates For Point.
Dtk_TransformedSurface::Create
static Dtk_TransformedSurfacePtr Create(const Dtk_TransformedSurface &inSurfToCopy)
Dtk_Curve::IsLine
Dtk_bool IsLine()
return True if Curve is a line
Dtk_ConicalSurface::Create
static Dtk_ConicalSurfacePtr Create(const Dtk_ConicalSurface &inSurfToCopy)
Dtk_Polyline::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_OffsetSurface::get_type_detk
type_detk get_type_detk() const
Dtk_StandardRevolutionSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_PlaneSurface::GetOrigin
Dtk_pnt GetOrigin() const
Dtk_Parabola::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_Hyperbola::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_Polyline::Transform
virtual Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
transform Polyline with inTransformation
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve(const Dtk_tab< Dtk_CurvePtr > &inCurvesToMerge, Dtk_Double64 stichtol, Dtk_bool LengthParameter)
Dtk_Parabola
Definition: util_geom_dtk.hpp:637
Dtk_Curve::Normalize
virtual void Normalize()
Normalize Curve.
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_UInt32 &inDegree, const Dtk_tab< Dtk_Double64 > &inKnots, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >())
Dtk_Line::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_FilletSurface::GetKnots
Dtk_tab< Dtk_Double64 > GetKnots() const
Dtk_FilletSurface::GetAdjacentSurface
Dtk_SurfacePtr GetAdjacentSurface(const Dtk_Size_t &inIndex) const
Dtk_NurbsCurve::CanHaveDiscontinuity
Dtk_bool CanHaveDiscontinuity() const
return DTK_TRUE if nurbs can have discontinuity
Dtk_RevolutionSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_StandardRevolutionSurface::GetRevolvedCurve
Dtk_CurvePtr GetRevolvedCurve() const
GetRevolvedCurve.
Dtk_Surface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_PlaneSurface::~Dtk_PlaneSurface
virtual ~Dtk_PlaneSurface()
Dtk_Line::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_Line::Create
static Dtk_LinePtr Create(const Dtk_pnt &inPnt1, const Dtk_pnt &inPnt2)
Dtk_LinearExtrusionSurface::Dtk_LinearExtrusionSurface
Dtk_LinearExtrusionSurface(const Dtk_CurvePtr &inExtrudedCurve, const Dtk_dir &inExtrusionAxis)
Dtk_Line::Create
static Dtk_LinePtr Create(const Dtk_Line &inLineToCopy)
constructors returning Smart pointers
Dtk_ToroidalSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_RevolutionSurface::GetRevolutionAxis
const Dtk_dir & GetRevolutionAxis() const
GetRevolutionAxis.
Dtk_MeshSurface::GetVertexArrayIndex
const std::vector< Dtk_UInt32 > & GetVertexArrayIndex() const
Dtk_Line::ToNurbs
virtual Dtk_NurbsCurvePtr ToNurbs() const
Convert Curve to nurbs.
Dtk_CylindricalSurface::GetRadius
Dtk_Double64 GetRadius() const
Dtk_NurbsSurface::IsRationnal
Dtk_bool IsRationnal() const
DTK_TYPE_PLANE
@ DTK_TYPE_PLANE
Definition: define.h:92
Dtk_NurbsSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_NurbsSurface::ComputeUDerivative
virtual Dtk_ErrorStatus ComputeUDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const
Dtk_RevolutionSurface::Create
static Dtk_RevolutionSurfacePtr Create(const Dtk_RevolutionSurface &inSurfToCopy)
Dtk_Point::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_OffsetSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1556
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:758
Dtk_OffsetSurface::GetSurface
Dtk_SurfacePtr GetSurface() const
Dtk_NurbsSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:842
Dtk_ConicalSurface::GetSemiAngle
Dtk_Double64 GetSemiAngle() const
Dtk_Hyperbola
Definition: util_geom_dtk.hpp:690
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:1019
Dtk_SphericalSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_ConicalSurface::~Dtk_ConicalSurface
virtual ~Dtk_ConicalSurface()
Dtk_FilletSurface::DtkDynamicCast
static Dtk_FilletSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_MeshSurface::DtkDynamicCast
static Dtk_MeshSurface * DtkDynamicCast(Dtk_Object *inObject)
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve(const Dtk_UInt32 &inDegree, const Dtk_tab< Dtk_Double64 > &inKnots, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >())
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_tab< Dtk_CurvePtr > &inCurvesToMerge, Dtk_Double64 stichtol=DTK_TOLERANCE, Dtk_bool LengthParameter=DTK_FALSE)
Dtk_CylindricalSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_StandardRevolutionSurface::GetRevolutionAxis
const Dtk_dir & GetRevolutionAxis() const
GetRevolutionAxis.
DTK_TYPE_LINE
@ DTK_TYPE_LINE
Definition: define.h:57
Dtk_MeshSurface::AddMeshFaceToMesh
Dtk_ErrorStatus AddMeshFaceToMesh(Dtk_MeshPtr &inoutMeshPtr) const
Add MeshSurface to Mesh.
Dtk_Hyperbola::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_CylindricalSurface::~Dtk_CylindricalSurface
virtual ~Dtk_CylindricalSurface()
Dtk_RuledSurface
This is the Ruled Surface Class. U Parametrisation is given by curve parametrisation V Parametrisatio...
Definition: util_geom_dtk.hpp:1249
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:574
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:24
Dtk_Ellipse::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_NurbsCurve::ComputeUDir
virtual Dtk_ErrorStatus ComputeUDir(const Dtk_Double64 &inU, Dtk_dir &outDir) const
Compute dir on U parameter.
Dtk_OffsetSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_ToroidalSurface::~Dtk_ToroidalSurface
virtual ~Dtk_ToroidalSurface()
Dtk_ToroidalSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_Hyperbola::Create
static Dtk_HyperbolaPtr Create(const Dtk_Hyperbola &inToCopy)
Dtk_FilletSurface::GetSpineCurve
Dtk_CurvePtr GetSpineCurve() const
Dtk_ErrorStatus
Dtk_ErrorStatus
Definition: error_dtk.hpp:6
Dtk_NurbsSurface::Dtk_NurbsSurface
Dtk_NurbsSurface()
Dtk_SphericalSurface::GetRadius
Dtk_Double64 GetRadius() const
Dtk_PlaneSurface::Dtk_PlaneSurface
Dtk_PlaneSurface(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_dir &inVDirection)
Dtk_Curve::SetDimension
void SetDimension(const Dtk_Size_t &inDimension)
Set curve dimension (2 or 3)
Dtk_FilletSurface::get_type_detk
type_detk get_type_detk() const
Dtk_NurbsCurve::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_Ellipse::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_ConicalSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_Conic::Dtk_Conic
Dtk_Conic()
Dtk_Hyperbola::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_FilletSurface::Dtk_FilletSurface
Dtk_FilletSurface(const Dtk_CurvePtr &inSpine, const Dtk_Double64 &inAngle1, const Dtk_Double64 &inAngle2, const Dtk_Double64 &inConstantRadius, const Dtk_tab< Dtk_CurvePtr > &inAdjacentCurve, const Dtk_tab< Dtk_SurfacePtr > &inAdjacentSurface, const Dtk_tab< Dtk_Double64 > &inSpineParam, const Dtk_tab< Dtk_Double64 > &inKnots, const Dtk_Double64 &inRadius1, const Dtk_Double64 &inRadius2, const Dtk_NurbsSurfacePtr &inCorrespondingNurbs=NULL)
Dtk_NurbsSurface::GetVKnotValue
Dtk_Double64 GetVKnotValue(const Dtk_Size_t &inIndex) const
Dtk_NurbsSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:830
Dtk_NurbsCurve::ForceG1Continuity
Dtk_NurbsCurvePtr ForceG1Continuity() const
Dtk_FilletSurface::GetSpineParametrization
Dtk_tab< Dtk_Double64 > GetSpineParametrization() const
Dtk_Surface::ComputeUVto3DFirstDerivative
Dtk_ErrorStatus ComputeUVto3DFirstDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, const Dtk_dir &inUVFirstDerivative, Dtk_dir &out3DFirstDerivative) const
Compute 3D first derivative on UV point according to UV derivative.
Dtk_MeshSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Conic::DtkDynamicCast
static Dtk_Conic * DtkDynamicCast(Dtk_Object *inObject)
Dtk_NurbsSurface::SetTypeBeforeConversion
void SetTypeBeforeConversion(type_detk type)
Dtk_MeshSurface::GetVertexArray
const std::vector< Dtk_pnt > & GetVertexArray() const
Dtk_RuledSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_Point::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:28
Dtk_PlaneSurface::get_type_detk
type_detk get_type_detk() const
Dtk_StandardRevolutionSurface::Create
static Dtk_StandardRevolutionSurfacePtr Create(const Dtk_CurvePtr &inRevolvedCurve, const Dtk_pnt &inAxisposition, const Dtk_dir &inRevolutionAxis, const Dtk_dir &inVDirection, const Dtk_dir &inYDir=Dtk_dir())
Create Dtk_StandardRevolutionSurface.
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve(const Dtk_UInt32 &inDegree, const Dtk_tab< Dtk_Double64 > &inKnotsValues, const Dtk_tab< Dtk_UChar8 > &inKnotsMultiplicities, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >())
Dtk_SphericalSurface::_ComputeMultipleDerivative
Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_Hyperbola::Dtk_Hyperbola
Dtk_Hyperbola(const Dtk_Hyperbola &inToCopy)
Dtk_TransformedSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Point::Create
static Dtk_PointPtr Create(const Dtk_Double64 &inX, const Dtk_Double64 &inY, const Dtk_Double64 &inZ)
Dtk_NurbsCurve::Point
Dtk_pnt & Point(const Dtk_Size_t &inIndex)
Dtk_Parabola::GetDomain
Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
Dtk_StandardRevolutionSurface::GetXDirection
const Dtk_dir & GetXDirection() const
Give V origin for parametrisation.
Dtk_NurbsCurve::IsClosed
Dtk_bool IsClosed(Dtk_Double64 inTol=DTK_TOLERANCE) const
return DTK_TRUE if nurbs is closed
Dtk_ToroidalSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1428
Dtk_NurbsSurface::Split
Dtk_ErrorStatus Split(Dtk_Double64 inTrimDom[4], Dtk_Double64 inTolerance=DTK_TOLERANCE)
Dtk_OffsetSurface::GetOffset
Dtk_Double64 GetOffset() const
Dtk_Polyline::IsLine
Dtk_bool IsLine() const
return DTK_TRUE if polyline is a line DTK_FALSE otherwise
Dtk_Polyline::Create
static Dtk_PolylinePtr Create(const Dtk_Polyline &inPolylineToCopy)
constructors returning Smart pointers
Dtk_FilletSurface::GetConstantRadius
Dtk_Double64 GetConstantRadius() const
Dtk_UChar8
unsigned char Dtk_UChar8
Definition: define.h:698
Dtk_NurbsCurve::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Transform Curve.
Dtk_RuledSurface::GetSecondCurve
Dtk_CurvePtr GetSecondCurve() const
Dtk_LinearExtrusionSurface::~Dtk_LinearExtrusionSurface
virtual ~Dtk_LinearExtrusionSurface()
Dtk_NurbsSurface::GetUKnotValue
Dtk_Double64 GetUKnotValue(const Dtk_Size_t &inIndex) const
Dtk_SphericalSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_NurbsSurface::Create
static Dtk_NurbsSurfacePtr Create(const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnotsValues, const Dtk_tab< Dtk_Double64 > &inVKnotsValues, const Dtk_tab< Dtk_UChar8 > &inUKnotsMultiplicities, const Dtk_tab< Dtk_UChar8 > &inVKnotsMultiplicities, const Dtk_tab< Dtk_tab< Dtk_pnt > > &inControlPoints, const Dtk_tab< Dtk_tab< Dtk_Double64 > > &inWeights=Dtk_tab< Dtk_tab< Dtk_Double64 > >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE, const Dtk_UInt32 &inTargetUDegree=0, const Dtk_UInt32 &inTargetVDegree=0)
Dtk_NurbsCurve::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:201
Dtk_NurbsCurve::SetTypeBeforeConversion
void SetTypeBeforeConversion(const type_detk &inType)
Dtk_Hyperbola::Reverse
virtual void Reverse()
Reverse Curve.
Dtk_TransformedSurface::_ComputeMultipleDerivative
Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_NurbsSurface::Point
const Dtk_pnt & Point(const Dtk_Size_t &inUIndex, const Dtk_Size_t &inVIndex) const
Dtk_StandardRevolutionSurface::GetZDirection
const Dtk_dir & GetZDirection() const
GetZDirection.
Dtk_LinearExtrusionSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_RuledSurface::Dtk_RuledSurface
Dtk_RuledSurface(const Dtk_CurvePtr &inFirstCurve, const Dtk_CurvePtr &inSecondCurve)
Dtk_LinearExtrusionSurface::Create
static Dtk_LinearExtrusionSurfacePtr Create(const Dtk_CurvePtr &inExtrudedCurve, const Dtk_dir &inExtrusionAxis)
Create an infinite Dtk_LinearExtrusionSurface from a curve and a extrusion vector two curves.
Dtk_FilletSurface::GetParam2
Dtk_Double64 GetParam2() const
Dtk_NurbsCurve::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:193
Dtk_OffsetSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_Hyperbola::~Dtk_Hyperbola
virtual ~Dtk_Hyperbola()
Dtk_ToroidalSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_Parabola::DtkDynamicCast
static Dtk_Parabola * DtkDynamicCast(Dtk_Object *inObject)
Dtk_Ellipse::Create
static Dtk_EllipsePtr Create(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inMajorRadius, const Dtk_Double64 &inMinorRadius)
Dtk_StandardRevolutionSurface::~Dtk_StandardRevolutionSurface
virtual ~Dtk_StandardRevolutionSurface()
Dtk_ConicalSurface::Create
static Dtk_ConicalSurfacePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_Double64 &inFirstRadius, const Dtk_Double64 &inAngle, const Dtk_dir &inYDir=Dtk_dir())
Create an infinite Cone.
Dtk_NurbsCurve::_ComputeAnyDerivativeExtended
Dtk_ErrorStatus _ComputeAnyDerivativeExtended(Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
Compute any derivative for an U value outside of the curve definition.
Dtk_RuledSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_LinearExtrusionSurface::IsVPeriodic
virtual Dtk_bool IsVPeriodic() const
Return DTK_TRUE If Periodic following V parameter.
Dtk_NurbsCurve::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_ConicalSurface::Dtk_ConicalSurface
Dtk_ConicalSurface(const Dtk_ConicalSurface &s)
Dtk_TransformedSurface::DtkDynamicCast
static Dtk_TransformedSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_pnt
This is a mathematical point class.
Definition: dtk_pnt.hpp:22
type_detk
type_detk
Definition: define.h:32
Dtk_Hyperbola::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:698
Dtk_NurbsCurve::GetDegree
Dtk_UInt32 GetDegree() const
return degree
Dtk_StandardRevolutionSurface::GetAxisPosition
const Dtk_pnt & GetAxisPosition() const
Get origin
Dtk_Curve::IsClosed
virtual Dtk_bool IsClosed(Dtk_Double64 inTol=DTK_TOLERANCE) const
return True if Curve is closed
Dtk_Curve::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const =0
Return First point.
Dtk_Surface::Clone
virtual Dtk_Object * Clone()=0
DTK_TYPE_TRANSFORMED_SURFACE
@ DTK_TYPE_TRANSFORMED_SURFACE
Definition: define.h:499
Dtk_ConicalSurface::Dtk_ConicalSurface
Dtk_ConicalSurface()
Dtk_Surface::GetTrimUVBox
Dtk_ErrorStatus GetTrimUVBox(Dtk_Double64 outTrimValues[]) const
Get Surface Trim Box : Umin = outTrimValues[0] Umax = outTrimValues[1] Vmin = outTrimValues[2] Vmax =...
Dtk_RevolutionSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_FilletSurface::Dtk_FilletSurface
Dtk_FilletSurface(const Dtk_FilletSurface &s)
Dtk_ToroidalSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_Parabola::Create
static Dtk_ParabolaPtr Create(const Dtk_Parabola &inToCopy)
Dtk_Line::Dtk_Line
Dtk_Line(const Dtk_pnt &inOrigin, const Dtk_dir &inDirection)
constructor
DTK_TYPE_CYLINDRICAL_SURFACE
@ DTK_TYPE_CYLINDRICAL_SURFACE
Definition: define.h:93
Dtk_Polyline::Dtk_Polyline
Dtk_Polyline()
Default constructor.
Dtk_Line::Reverse
virtual void Reverse()
Reverse Curve.
Dtk_Parabola::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 u, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_Surface
Dtk_Surface is a geometrical entity representing a surface. Some type of surface are unlimited such a...
Definition: util_geom_dtk.hpp:756
Dtk_LinearExtrusionSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_OffsetSurface::PrepareTransfo
virtual void PrepareTransfo()
Dtk_OffsetSurface::DtkDynamicCast
static Dtk_OffsetSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_RevolutionSurface::Dtk_RevolutionSurface
Dtk_RevolutionSurface(const Dtk_CurvePtr &inRevolvedCurve, const Dtk_pnt &inAxisposition, const Dtk_dir &inRevolutionAxis, const Dtk_dir &inUDirection, const Dtk_dir &inYDir)
Dtk_Surface::Dtk_Surface
Dtk_Surface()
Dtk_CylindricalSurface::Dtk_CylindricalSurface
Dtk_CylindricalSurface()
Dtk_NurbsCurve::ToNurbs
virtual Dtk_NurbsCurvePtr ToNurbs() const
Convert Curve to nurbs.
Dtk_Line::get_type_detk
type_detk get_type_detk() const
Dtk_Conic
This is the Conic Class. It is part of the Dtk_Curve entity.
Definition: util_geom_dtk.hpp:503
Dtk_CylindricalSurface::GetDomain
Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_NurbsCurve::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Return First point.
Dtk_TransformedSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_StandardRevolutionSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_Curve::PDtk_StoreDataCurve
friend void PDtk_StoreDataCurve(void *, Dtk_CurvePtr &)
Dtk_PlaneSurface::GetYDirection
Dtk_dir GetYDirection() const
Dtk_StandardRevolutionSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_NurbsSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_NurbsSurface::GetNumKnotsU
Dtk_Size_t GetNumKnotsU() const
Dtk_Ellipse::GetMajorRadius
Dtk_Double64 GetMajorRadius() const
Dtk_StandardRevolutionSurface::GetRadius
Dtk_Double64 GetRadius() const
Get Radius at origin.
Dtk_Parabola::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Curve::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_Surface::ComputeUVto3DSecondDerivative
Dtk_ErrorStatus ComputeUVto3DSecondDerivative(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, const Dtk_dir &inUVFirstDerivative, const Dtk_dir &inUVSecondDerivative, Dtk_dir &out3DSecondDerivative) const
Compute 3D second derivative on UV point according to UV derivatives.
Dtk_Conic::GetXDirection
const Dtk_dir & GetXDirection() const
Dtk_NurbsSurface::GetNumKnotsV
Dtk_Size_t GetNumKnotsV() const
Dtk_TransformedSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_LinearExtrusionSurface::GetExtrusionAxis
const Dtk_dir & GetExtrusionAxis() const
Dtk_FilletSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1609
Dtk_PlaneSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:958
Dtk_LinearExtrusionSurface::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_PlaneSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:956
Dtk_NurbsCurve::IsLine
Dtk_bool IsLine() const
return DTK_TRUE if nurbs is line
Dtk_PlaneSurface::Normalize
Dtk_ErrorStatus Normalize()
Dtk_NurbsCurve::ComputeUPointDir
Dtk_ErrorStatus ComputeUPointDir(const Dtk_Double64 &inUparameter, Dtk_pnt &outPoint, Dtk_dir &outDir) const
Compute point and dir on U parameter.
Dtk_Curve::ComputeLength
Dtk_Double64 ComputeLength()
return curve Length
Dtk_Parabola::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_Surface::Dtk_Surface
Dtk_Surface(const Dtk_Surface &s)
Dtk_Line::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_Ellipse::DtkDynamicType
int DtkDynamicType(const int &inId)
downcasting
Dtk_TransformedSurface::get_type_detk
type_detk get_type_detk() const
Dtk_Conic::GetYDirection
Dtk_dir GetYDirection() const
Get Y direction of Conic.
Dtk_RevolutionSurface::get_type_detk
type_detk get_type_detk() const
Dtk_MeshSurface
This is the Mesh Surface Class.
Definition: util_geom_dtk.hpp:1720
Dtk_PlaneSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_TransformedSurface::Dtk_TransformedSurface
Dtk_TransformedSurface()
Dtk_Polyline::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_NurbsSurface::GetUnpackedVKnot
Dtk_Double64 * GetUnpackedVKnot() const
Dtk_SphericalSurface::DtkDynamicCast
static Dtk_SphericalSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_Surface::DtkDynamicCast
static Dtk_Surface * DtkDynamicCast(Dtk_Object *s)
Dtk_Polyline::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_MeshSurface::GetMesh
Dtk_MeshPtr GetMesh() const
Get the Dtk_Mesh corresponding to MeshSurface.
Dtk_tab< Dtk_pnt >
Dtk_CylindricalSurface::Dtk_CylindricalSurface
Dtk_CylindricalSurface(const Dtk_CylindricalSurface &s)
DTK_TYPE_FILLET_SURFACE
@ DTK_TYPE_FILLET_SURFACE
Definition: define.h:116
Dtk_Ellipse::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:576
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:1607
Dtk_OffsetSurface::Create
static Dtk_OffsetSurfacePtr Create(const Dtk_SurfacePtr &inSurf, const Dtk_Double64 &inOffset)
Create an offset surface following surface normal.
Dtk_ConicalSurface::Dtk_ConicalSurface
Dtk_ConicalSurface(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inYDirection, const Dtk_dir &inUDirection, const Dtk_Double64 &inRadius, const Dtk_Double64 &inAngle)
Dtk_Hyperbola::Create
static Dtk_HyperbolaPtr Create(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inSemiAxis, const Dtk_Double64 &inSemiImageAxis)
Dtk_NurbsCurve::GetKnotValue
Dtk_Double64 GetKnotValue(const Dtk_Size_t &inIndex) const
return knot value at inIndex place
Dtk_Ellipse::~Dtk_Ellipse
virtual ~Dtk_Ellipse()
Dtk_Parabola::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_Conic::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:505
Dtk_Parabola::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:639
Dtk_ConicalSurface::DtkDynamicCast
static Dtk_ConicalSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_OffsetSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1560
Dtk_Curve::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:89
Dtk_Line::_Private
Dtk_Handle * _Private
Handle
Definition: util_geom_dtk.hpp:425
Dtk_Ellipse::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_Line::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
Dtk_Ellipse::Dtk_Ellipse
Dtk_Ellipse(const Dtk_pnt &inCenter, const Dtk_dir &inNormal, const Dtk_dir &inXref, const Dtk_Double64 &inMajorRadius, const Dtk_Double64 &inMinorRadius)
Dtk_NurbsSurface::IsVPeriodic
virtual Dtk_bool IsVPeriodic() const
return DTK_TRUE if nurbs is periodic in V
Dtk_Point
This is the POINT Class. It is part of the Dtk_Point entity.
Definition: util_geom_dtk.hpp:20
Dtk_FilletSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_CylindricalSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1310
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:582
Dtk_RuledSurface::Dtk_RuledSurface
Dtk_RuledSurface()
Dtk_Hyperbola::GetSemiAxis
Dtk_Double64 GetSemiAxis() const
Dtk_NurbsCurve::GetUnpackedKnot
Dtk_Double64 * GetUnpackedKnot() const
util_geom_ptr_dtk.hpp
Dtk_NurbsCurve::ComputeEndPoint
virtual Dtk_pnt ComputeEndPoint() const
Return Last point.
Dtk_Point::get_type_detk
type_detk get_type_detk() const
Return type.
Dtk_SphericalSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_SphericalSurface::Dtk_SphericalSurface
Dtk_SphericalSurface(const Dtk_SphericalSurface &s)
DTK_TYPE_OFFSET_SURFACE
@ DTK_TYPE_OFFSET_SURFACE
Definition: define.h:115
Dtk_Line::Transform
virtual Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
transform Line with inTransformation
Dtk_StandardRevolutionSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1113
Dtk_Parabola::get_type_detk
type_detk get_type_detk() const
Dtk_Surface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const =0
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_LinearExtrusionSurface::Normalize
Dtk_ErrorStatus Normalize()
DTK_TYPE_RULED_SURFACE
@ DTK_TYPE_RULED_SURFACE
Definition: define.h:100
Dtk_StandardRevolutionSurface::Create
static Dtk_StandardRevolutionSurfacePtr Create(const Dtk_StandardRevolutionSurface &inSurfToCopy)
Dtk_StandardRevolutionSurface::Dtk_StandardRevolutionSurface
Dtk_StandardRevolutionSurface()
Dtk_Polyline::ComputeBoundingBox
Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, Dtk_bool inMorePrecise=0)
Compute Bounding Box.
Dtk_OffsetSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_Ellipse::ToPolyline
virtual Dtk_PolylinePtr ToPolyline(const int &inMinPoint, const Dtk_Double64 &inTolerance) const
Convert Curve to polyline.
Dtk_Hyperbola::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outU) const
Compute U parameter from point.
Dtk_PlaneSurface
This is the Plane Surface Class. U parametrisation : [-infini - +infini] : 0 is inOrigin and unit vec...
Definition: util_geom_dtk.hpp:954
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:578
Dtk_NurbsSurface
This is the Nurbs Surface Class. It is part of the Dtk_NurbsSurface entity.
Definition: util_geom_dtk.hpp:828
Dtk_Parabola::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_NurbsSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_Ellipse::ComputeStartPoint
virtual Dtk_pnt ComputeStartPoint() const
Return First point.
Dtk_NurbsSurface::GetVDegree
Dtk_UInt32 GetVDegree() const
DTK_TYPE_TOROIDAL_SURFACE
@ DTK_TYPE_TOROIDAL_SURFACE
Definition: define.h:96
Dtk_NurbsSurface::_ComputeMultipleDerivative
virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_Object
Definition: dtk_object.hpp:8
Dtk_Surface::DeleteCorrespondingNurbs
void DeleteCorrespondingNurbs()
Dtk_SphericalSurface::~Dtk_SphericalSurface
virtual ~Dtk_SphericalSurface()
Dtk_SphericalSurface::Dtk_SphericalSurface
Dtk_SphericalSurface(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inYDir, const Dtk_dir &inUDirection, const Dtk_Double64 &inRadius)
Dtk_Line::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const
Get Curve Parametrisation.
Dtk_Polyline::Reverse
virtual void Reverse()
Reverse Curve.
Dtk_RevolutionSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_RevolutionSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_NurbsCurve::SetIsClosed
void SetIsClosed(const Dtk_bool &inIsClosed)
sets is_closed field to DTK_TRUE or DTK_FALSE
Dtk_TransformedSurface
Definition: util_geom_dtk.hpp: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)
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:832
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:1109
Dtk_ToroidalSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1426
Dtk_LinearExtrusionSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_Surface::_HasInternalNurbs
Dtk_bool _HasInternalNurbs() const
Dtk_RuledSurface::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
DTK_TYPE_HYPERBOLA
@ DTK_TYPE_HYPERBOLA
Definition: define.h:62
Dtk_Point::Create
static Dtk_PointPtr Create(const Dtk_Point &inToCopy)
constructors returning Smart pointers
Dtk_TransformedSurface::Dtk_TransformedSurface
Dtk_TransformedSurface(const Dtk_SurfacePtr &inSurf, const Dtk_transfo &inTransformation)
Dtk_NurbsCurve::GetTypeBeforeConversion
type_detk GetTypeBeforeConversion() const
Dtk_RuledSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1251
Dtk_Surface::Create
static Dtk_SurfacePtr Create(const Dtk_Surface &s)
Create Surface by copy.
Dtk_Line
This is the Infinite Line Class. It is part of the Dtk_Curve entity 0.0 parametrisation is first poin...
Definition: util_geom_dtk.hpp:422
DTK_TYPE_CONICAL_SURFACE
@ DTK_TYPE_CONICAL_SURFACE
Definition: define.h:94
Dtk_Hyperbola::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
transform
Dtk_Curve::IsTrimmed
Dtk_bool IsTrimmed() const
Return DTK_TRUE if Curve Is trimmed by point or parameter value.
Dtk_Surface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int extendtype) const
Dtk_Conic::Dtk_Conic
Dtk_Conic(const Dtk_Conic &inConicToCopy)
Dtk_NurbsCurve::Dtk_NurbsCurve
Dtk_NurbsCurve(const Dtk_UInt32 &inDegree, const Dtk_tab< Dtk_pnt > &inControlPoints)
Dtk_RuledSurface::~Dtk_RuledSurface
virtual ~Dtk_RuledSurface()
Dtk_NurbsCurve::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
Compute any derivative for an U value.
Dtk_Point::DtkDynamicCast
static Dtk_Point * DtkDynamicCast(Dtk_Object *inObject)
Dtk_PlaneSurface::DtkDynamicCast
static Dtk_PlaneSurface * DtkDynamicCast(Dtk_Object *s)
Dtk_CylindricalSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_Parabola::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outU) const
Compute U parameter from point.
Dtk_RuledSurface::GetFirstCurve
Dtk_CurvePtr GetFirstCurve() const
Dtk_Surface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Ellipse::Reverse
virtual void Reverse()
Reverse Curve.
Dtk_NurbsSurface::ComputeUVPoint
virtual Dtk_ErrorStatus ComputeUVPoint(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const
Compute 3D point.
Dtk_CylindricalSurface::ComputeNormal
virtual Dtk_ErrorStatus ComputeNormal(const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const
Compute Normal on UV point.
Dtk_LinearExtrusionSurface::Dtk_LinearExtrusionSurface
Dtk_LinearExtrusionSurface(const Dtk_LinearExtrusionSurface &s)
DTK_TYPE_REVOLUTION_SURFACE
@ DTK_TYPE_REVOLUTION_SURFACE
Definition: define.h:496
Dtk_StandardRevolutionSurface::_ComputeAnyDerivative
virtual Dtk_ErrorStatus _ComputeAnyDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const
Dtk_Surface::IsTrimmed
Dtk_bool IsTrimmed() const
Return DTK_TRUE if Surface Is trimmed by parameter value.
Dtk_OffsetSurface::_ComputeMultipleDerivative
virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_Polyline::ComputeParameter
virtual Dtk_ErrorStatus ComputeParameter(const Dtk_pnt &inPoint, Dtk_Double64 &outU) const
Compute U parameter from point.
Dtk_RevolutionSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1027
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:1367
Dtk_RevolutionSurface::_Private
Dtk_Handle * _Private
Definition: util_geom_dtk.hpp:1021
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:1314
Dtk_SphericalSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1495
Dtk_NurbsSurface::SplitAt
Dtk_ErrorStatus SplitAt(const Dtk_Double64 &inParameter, const Dtk_bool &inUSplit, const Dtk_bool &inKeepLeft, Dtk_NurbsSurfacePtr &outOtherPart, Dtk_Double64 inTolerance=DTK_TOLERANCE)
Dtk_NurbsSurface::Create
static Dtk_NurbsSurfacePtr Create(const Dtk_NurbsSurface &s)
Dtk_MeshSurface::get_type_detk
type_detk get_type_detk() const
Dtk_NurbsCurve
This is the Nurbs Class. It is part of the Dtk_Curve entity.
Definition: util_geom_dtk.hpp:189
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:1373
Dtk_LinearExtrusionSurface::Clone
virtual Dtk_Object * Clone()
Definition: util_geom_dtk.hpp:1198
Dtk_Curve::ComputeOffset
Dtk_NurbsCurvePtr ComputeOffset(Dtk_Double64 inOffset, Dtk_dir inOffsetDirection)
Compute offset curve and convert it to nurbs.
Dtk_NurbsCurve::ComputeUPoint
virtual Dtk_ErrorStatus ComputeUPoint(const Dtk_Double64 &inU, Dtk_pnt &outPoint) const
Compute point on U parameter.
Dtk_StandardRevolutionSurface::Dtk_StandardRevolutionSurface
Dtk_StandardRevolutionSurface(const Dtk_CurvePtr &inRevolvedCurve, const Dtk_pnt &inAxisposition, const Dtk_dir &inRevolutionAxis, const Dtk_dir &inVDirection, const Dtk_dir &inYDir)
Dtk_Conic::GetOriginDirection
const Dtk_dir & GetOriginDirection() const
Get Origin of parametrisation of Conic (inXdir on schema)
Dtk_StandardRevolutionSurface::_ComputeMultipleDerivative
virtual Dtk_ErrorStatus _ComputeMultipleDerivative(Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const
Dtk_Polyline
This is the Polyline and Segment Line Class. It is part of the Dtk_Curve entity.
Definition: util_geom_dtk.hpp:337
Dtk_PlaneSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_StandardRevolutionSurface::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 outDomain[]) const
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outD...
Dtk_Polyline::AddPoint
void AddPoint(const Dtk_pnt &inNewPoint)
Add point to polyline.
Dtk_NurbsCurve::IsBezier
Dtk_bool IsBezier() const
return DTK_TRUE if bezier
Dtk_OffsetSurface::_ComputeMultipleDerivative_withbasis
Dtk_ErrorStatus _ComputeMultipleDerivative_withbasis(const Dtk_Double64 &inUvalue, const Dtk_Double64 &inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, Dtk_dir *outdirsbasis, int exttype) const
Dtk_OffsetSurface::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_Curve::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const =0
Get Curve Parametrisation.
Dtk_Curve::ComputeOrientedBoundingBox
virtual Dtk_ErrorStatus ComputeOrientedBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax, const Dtk_transfo &inLocal)
Compute Oriented Bounding Box.
Dtk_StandardRevolutionSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_NurbsCurve::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_NurbsSurface::_Store
virtual Dtk_ErrorStatus _Store(void *)
Dtk_Surface::ComputeBoundingBox
Dtk_ErrorStatus ComputeBoundingBox(Dtk_pnt &outMin, Dtk_pnt &outMax) const
Set Surface Parametrisation : Umin = inDomain[0] Umax = inDomain[1] Vmin = inDomain[2] Vmax = inDomai...
Dtk_Hyperbola::GetSize
virtual Dtk_Size_t GetSize() const
Dtk_NurbsCurve::Create
static Dtk_NurbsCurvePtr Create(const Dtk_NurbsCurve &s)
constructors returning Smart pointers
DTK_TYPE_LINEAR_EXTRUSION_SURFACE
@ DTK_TYPE_LINEAR_EXTRUSION_SURFACE
Definition: define.h:498
Dtk_RuledSurface::Dtk_RuledSurface
Dtk_RuledSurface(const Dtk_RuledSurface &s)
Dtk_TransformedSurface::GetTransformation
Dtk_transfo GetTransformation() const
Dtk_RevolutionSurface::Create
static Dtk_RevolutionSurfacePtr Create(const Dtk_CurvePtr &inRevolvedCurve, const Dtk_pnt &inAxisposition, const Dtk_dir &inRevolutionAxis, const Dtk_dir &inUDirection, const Dtk_dir &inYDir=Dtk_dir())
OBSOLETE Create Dtk_RevolutionSurface.
Dtk_Entity
Definition: util_ent_dtk.hpp:329
Dtk_CylindricalSurface::Create
static Dtk_CylindricalSurfacePtr Create(const Dtk_pnt &inOrigin, const Dtk_dir &inNormal, const Dtk_dir &inUDirection, const Dtk_Double64 &inRadius, const Dtk_dir &inYDirection=Dtk_dir())
Create an infinite cylinder.
Dtk_OffsetSurface::ToNurbs
virtual Dtk_NurbsSurfacePtr ToNurbs(const Dtk_Double64 *inTrimDomain=NULL) const
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Dtk_FilletSurface::GetNumAdjacentSurfaces
Dtk_Size_t GetNumAdjacentSurfaces() const
Dtk_LinearExtrusionSurface::GetExtrudedCurve
Dtk_CurvePtr GetExtrudedCurve() const