summaryrefslogtreecommitdiff
path: root/inc/Intf_TangentZone.hxx
blob: af8e40de3c9c0a8e8815cb85b0e8983a12d21df2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _Intf_TangentZone_HeaderFile
#define _Intf_TangentZone_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Intf_SeqOfSectionPoint_HeaderFile
#include <Intf_SeqOfSectionPoint.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
class Standard_OutOfRange;
class Intf_SectionPoint;


//! Describes   a  zone  of  tangence  between  polygons  or <br>
//!          polyhedra as a sequence of points of intersection. <br>
class Intf_TangentZone  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  //! Returns number of SectionPoint in this TangentZone. <br>
        Standard_Integer NumberOfPoints() const;
  //! Gives   the   SectionPoint   of  address  <Index>  in  the <br>
//!          TangentZone. <br>
//! <br>
  Standard_EXPORT    const Intf_SectionPoint& GetPoint(const Standard_Integer Index) const;
  //! Compares two TangentZones. <br>
//! <br>
  Standard_EXPORT     Standard_Boolean IsEqual(const Intf_TangentZone& Other) const;
    Standard_Boolean operator ==(const Intf_TangentZone& Other) const
{
  return IsEqual(Other);
}
  //! Checks if <ThePI> is in TangentZone. <br>
  Standard_EXPORT     Standard_Boolean Contains(const Intf_SectionPoint& ThePI) const;
  //! Gives  the parameter range of the  TangentZone on the first <br>
//!          argument of the Interference. (Usable only for polygon) <br>
        void ParamOnFirst(Standard_Real& paraMin,Standard_Real& paraMax) const;
  //! Gives the parameter range of the  TangentZone on the second <br>
//!          argument of the Interference. (Usable only for polygon) <br>
        void ParamOnSecond(Standard_Real& paraMin,Standard_Real& paraMax) const;
  //! Gives information  about  the    first argument   of   the <br>
//!          Interference. (Usable only for polygon) <br>
  Standard_EXPORT     void InfoFirst(Standard_Integer& segMin,Standard_Real& paraMin,Standard_Integer& segMax,Standard_Real& paraMax) const;
  //! Gives   informations  about  the  second   argument of  the <br>
//!          Interference. (Usable only for polygon) <br>
  Standard_EXPORT     void InfoSecond(Standard_Integer& segMin,Standard_Real& paraMin,Standard_Integer& segMax,Standard_Real& paraMax) const;
  //! Returns True if  <ThePI>  is in the parameter  range of the <br>
//!          TangentZone. <br>
  Standard_EXPORT     Standard_Boolean RangeContains(const Intf_SectionPoint& ThePI) const;
  //! Returns True if the TangentZone  <Other> has  a common part <br>
//!          with <me>. <br>
  Standard_EXPORT     Standard_Boolean HasCommonRange(const Intf_TangentZone& Other) const;
  //! Builds an empty tangent zone. <br>
  Standard_EXPORT   Intf_TangentZone();
  //! Copies a Tangent zone. <br>
  Standard_EXPORT   Intf_TangentZone(const Intf_TangentZone& Other);
  //! Adds a SectionPoint to the TangentZone. <br>
  Standard_EXPORT     void Append(const Intf_SectionPoint& Pi) ;
  //! Adds the TangentZone <Tzi> to <me>. <br>
  Standard_EXPORT     void Append(const Intf_TangentZone& Tzi) ;
  //! Inserts a SectionPoint in the TangentZone. <br>
  Standard_EXPORT     Standard_Boolean Insert(const Intf_SectionPoint& Pi) ;
  //! Inserts a point in the polygonal TangentZone. <br>
  Standard_EXPORT     void PolygonInsert(const Intf_SectionPoint& Pi) ;
  //! Inserts a SectionPoint before <Index> in the TangentZone. <br>
  Standard_EXPORT     void InsertBefore(const Standard_Integer Index,const Intf_SectionPoint& Pi) ;
  //! Inserts a SectionPoint after <Index> in the TangentZone. <br>
  Standard_EXPORT     void InsertAfter(const Standard_Integer Index,const Intf_SectionPoint& Pi) ;
  
  Standard_EXPORT     void Dump(const Standard_Integer Indent) const;





protected:





private:



Intf_SeqOfSectionPoint Result;
Standard_Real ParamOnFirstMin;
Standard_Real ParamOnFirstMax;
Standard_Real ParamOnSecondMin;
Standard_Real ParamOnSecondMax;


};


#include <Intf_TangentZone.lxx>



// other Inline functions and methods (like "C++: function call" methods)


#endif