summaryrefslogtreecommitdiff
path: root/inc/IntRes2d_Transition.hxx
blob: 4d04995ac55df2a0ce5c634cbc58304e355505c8 (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
147
// 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 _IntRes2d_Transition_HeaderFile
#define _IntRes2d_Transition_HeaderFile

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

#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _IntRes2d_Position_HeaderFile
#include <IntRes2d_Position.hxx>
#endif
#ifndef _IntRes2d_TypeTrans_HeaderFile
#include <IntRes2d_TypeTrans.hxx>
#endif
#ifndef _IntRes2d_Situation_HeaderFile
#include <IntRes2d_Situation.hxx>
#endif
#ifndef _Standard_Storable_HeaderFile
#include <Standard_Storable.hxx>
#endif
#ifndef _Standard_PrimitiveTypes_HeaderFile
#include <Standard_PrimitiveTypes.hxx>
#endif
class Standard_DomainError;


Standard_EXPORT const Handle(Standard_Type)& STANDARD_TYPE(IntRes2d_Transition);

//! Definition of    the  type  of   transition    near an <br>
//!          intersection point between  two curves. The transition <br>
//!          is either a "true transition", which means that one of <br>
//!          the curves goes inside or outside  the area defined by <br>
//!          the other curve  near  the intersection, or  a  "touch <br>
//!          transition" which means that the  first curve does not <br>
//!          cross  the  other one,  or an  "undecided" transition, <br>
//!          which means that the curves are superposed. <br>
class IntRes2d_Transition  {

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); 
  }

  //! Empty constructor. <br>
  Standard_EXPORT   IntRes2d_Transition();
  //! Creates an IN or OUT transition. <br>
      IntRes2d_Transition(const Standard_Boolean Tangent,const IntRes2d_Position Pos,const IntRes2d_TypeTrans Type);
  //! Creates a TOUCH transition. <br>
      IntRes2d_Transition(const Standard_Boolean Tangent,const IntRes2d_Position Pos,const IntRes2d_Situation Situ,const Standard_Boolean Oppos);
  //! Creates an UNDECIDED transition. <br>
      IntRes2d_Transition(const IntRes2d_Position Pos);
  //! Sets the values of an IN or OUT transition. <br>
        void SetValue(const Standard_Boolean Tangent,const IntRes2d_Position Pos,const IntRes2d_TypeTrans Type) ;
  //! Sets the values of a TOUCH transition. <br>
        void SetValue(const Standard_Boolean Tangent,const IntRes2d_Position Pos,const IntRes2d_Situation Situ,const Standard_Boolean Oppos) ;
  //! Sets the values of an UNDECIDED transition. <br>
        void SetValue(const IntRes2d_Position Pos) ;
  //! Sets the value of the position. <br>
        void SetPosition(const IntRes2d_Position Pos) ;
  //! Indicates if the  intersection is at the beginning <br>
//!          (IntRes2d_Head),  at the end (IntRes2d_End), or in <br>
//!          the middle (IntRes2d_Middle) of the curve. <br>
        IntRes2d_Position PositionOnCurve() const;
  //! Returns the type of transition at the intersection. <br>
//!          It may be IN or OUT or TOUCH, or UNDECIDED if the <br>
//!          two first derivatives are not enough to give <br>
//!          the tangent to one of the two curves. <br>
        IntRes2d_TypeTrans TransitionType() const;
  //! Returns TRUE when the 2 curves are tangent at the <br>
//!          intersection point. <br>
//!          Theexception DomainError is raised if the type of <br>
//!          transition is UNDECIDED. <br>
        Standard_Boolean IsTangent() const;
  //! returns a significant value if TransitionType returns <br>
//!          TOUCH. In this case, the function returns : <br>
//!          INSIDE when the curve remains inside the other one, <br>
//!          OUTSIDE when it remains outside the other one, <br>
//!          UNKNOWN when the calculus, based on the second derivatives <br>
//!          cannot give the result. <br>
//!          If TransitionType returns IN or OUT or UNDECIDED, the <br>
//!          exception DomainError is raised. <br>
        IntRes2d_Situation Situation() const;
  //! returns a  significant value   if   TransitionType <br>
//!          returns TOUCH. In this  case, the function returns <br>
//!          true   when  the  2   curves   locally define  two <br>
//!          different  parts of the  space.  If TransitionType <br>
//!          returns  IN or   OUT or UNDECIDED,  the  exception <br>
//!          DomainError is raised. <br>
        Standard_Boolean IsOpposite() const;
    Standard_Boolean _CSFDB_GetIntRes2d_Transitiontangent() const { return tangent; }
    void _CSFDB_SetIntRes2d_Transitiontangent(const Standard_Boolean p) { tangent = p; }
    IntRes2d_Position _CSFDB_GetIntRes2d_Transitionposit() const { return posit; }
    void _CSFDB_SetIntRes2d_Transitionposit(const IntRes2d_Position p) { posit = p; }
    IntRes2d_TypeTrans _CSFDB_GetIntRes2d_Transitiontypetra() const { return typetra; }
    void _CSFDB_SetIntRes2d_Transitiontypetra(const IntRes2d_TypeTrans p) { typetra = p; }
    IntRes2d_Situation _CSFDB_GetIntRes2d_Transitionsituat() const { return situat; }
    void _CSFDB_SetIntRes2d_Transitionsituat(const IntRes2d_Situation p) { situat = p; }
    Standard_Boolean _CSFDB_GetIntRes2d_Transitionoppos() const { return oppos; }
    void _CSFDB_SetIntRes2d_Transitionoppos(const Standard_Boolean p) { oppos = p; }



protected:




private: 


Standard_Boolean tangent;
IntRes2d_Position posit;
IntRes2d_TypeTrans typetra;
IntRes2d_Situation situat;
Standard_Boolean oppos;


};


#include <IntRes2d_Transition.lxx>



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


#endif