summaryrefslogtreecommitdiff
path: root/inc/Intf_SectionPoint.hxx
blob: 4715a96d35e9a6cfac5c3bd0056f4f40a58a625b (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
134
135
136
137
138
139
140
141
142
143
144
145
146
// 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_SectionPoint_HeaderFile
#define _Intf_SectionPoint_HeaderFile

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

#ifndef _gp_Pnt_HeaderFile
#include <gp_Pnt.hxx>
#endif
#ifndef _Intf_PIType_HeaderFile
#include <Intf_PIType.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
class gp_Pnt;
class gp_Pnt2d;


//! Describes an intersection  point between  polygons  and <br>
//!          polyedra. <br>
class Intf_SectionPoint  {
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 the location of the SectionPoint. <br>
  Standard_EXPORT    const gp_Pnt& Pnt() const;
  //! Returns the cumulated  Parameter of the SectionPoint on the <br>
//!          first element. <br>
//! <br>
        Standard_Real ParamOnFirst() const;
  //! Returns the cumulated Parameter of the section point on the <br>
//!          second element. <br>
//! <br>
        Standard_Real ParamOnSecond() const;
  //! Returns the type of the section point on the first element. <br>
//! <br>
        Intf_PIType TypeOnFirst() const;
  //! Returns  the  type  of the  section  point  on  the  second <br>
//!          element. <br>
//! <br>
        Intf_PIType TypeOnSecond() const;
  
  Standard_EXPORT     void InfoFirst(Intf_PIType& Dim,Standard_Integer& Add1,Standard_Integer& Add2,Standard_Real& Param) const;
  //! Gives the   datas  about   the    first  argument of    the <br>
//!          Interference. <br>
  Standard_EXPORT     void InfoFirst(Intf_PIType& Dim,Standard_Integer& Addr,Standard_Real& Param) const;
  
  Standard_EXPORT     void InfoSecond(Intf_PIType& Dim,Standard_Integer& Add1,Standard_Integer& Add2,Standard_Real& Param) const;
  //! Gives the   datas  about   the    second  argument of    the <br>
//!          Interference. <br>
  Standard_EXPORT     void InfoSecond(Intf_PIType& Dim,Standard_Integer& Addr,Standard_Real& Param) const;
  //! Gives the incidence at  this  section point. The  incidence <br>
//!          between the two triangles is given by the cosine.  The best <br>
//!          incidence is 0. (PI/2).  The worst is 1. (null angle). <br>
  Standard_EXPORT     Standard_Real Incidence() const;
  //! Returns True if the two SectionPoint have the  same logical <br>
//!          informations. <br>
//! <br>
        Standard_Boolean IsEqual(const Intf_SectionPoint& Other) const;
      Standard_Boolean operator==(const Intf_SectionPoint& Other) const
{
  return IsEqual(Other);
}
  //! Returns True if the two SectionPoints are  on the  same edge <br>
//!          of the first or the second element. <br>
  Standard_EXPORT     Standard_Boolean IsOnSameEdge(const Intf_SectionPoint& Other) const;
  
  Standard_EXPORT   Intf_SectionPoint();
  //! Builds  a  SectionPoint    with the  respective  dimensions <br>
//!          (vertex edge or face)  of the concerned arguments and their <br>
//!          addresses in the Topological structure. <br>
  Standard_EXPORT   Intf_SectionPoint(const gp_Pnt& Where,const Intf_PIType DimeO,const Standard_Integer AddrO1,const Standard_Integer AddrO2,const Standard_Real ParamO,const Intf_PIType DimeT,const Standard_Integer AddrT1,const Standard_Integer AddrT2,const Standard_Real ParamT,const Standard_Real Incid);
  //! Builds  a  SectionPoint 2d   with the respective dimensions <br>
//!          (vertex or  edge)  of  the concerned arguments   and  their <br>
//!          addresses in the Topological structure. <br>
  Standard_EXPORT   Intf_SectionPoint(const gp_Pnt2d& Where,const Intf_PIType DimeO,const Standard_Integer AddrO1,const Standard_Real ParamO,const Intf_PIType DimeT,const Standard_Integer AddrT1,const Standard_Real ParamT,const Standard_Real Incid);
  //! Merges two SectionPoints. <br>
  Standard_EXPORT     void Merge(Intf_SectionPoint& Other) ;
  
  Standard_EXPORT     void Dump(const Standard_Integer Indent) const;





protected:





private:



gp_Pnt myPnt;
Intf_PIType DimenObje;
Standard_Integer IndexO1;
Standard_Integer IndexO2;
Standard_Real ParamObje;
Intf_PIType DimenTool;
Standard_Integer IndexT1;
Standard_Integer IndexT2;
Standard_Real ParamTool;
Standard_Real Incide;


};


#include <Intf_SectionPoint.lxx>



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


#endif