d53e7b985ba694c281619dbb07bf20db154acbd0
[occt.git] / src / HLRAlgo / HLRAlgo_Coincidence.hxx
1 // Created on: 1992-08-20
2 // Created by: Christophe MARION
3 // Copyright (c) 1992-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _HLRAlgo_Coincidence_HeaderFile
18 #define _HLRAlgo_Coincidence_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 #include <Standard_Integer.hxx>
25 #include <Standard_Real.hxx>
26 #include <TopAbs_State.hxx>
27
28 //! The Coincidence class is used in an Inteference to
29 //! store informations on the "hiding" edge.
30 //!
31 //! 2D  Data : The  tangent  and the  curvature of the
32 //! projection of the edge  at the intersection point.
33 //! This is necesserary  when the intersection  is  at
34 //! the extremity of the edge.
35 //!
36 //! 3D   Data  :  The   state of  the   edge  near the
37 //! intersection   with  the face (before  and after).
38 //! This is necessary  when the  intersection is  "ON"
39 //! the face.
40 class HLRAlgo_Coincidence
41 {
42 public:
43   DEFINE_STANDARD_ALLOC
44
45   Standard_EXPORT HLRAlgo_Coincidence() :
46     myFE(0),
47     myParam(0.),
48     myStBef(TopAbs_IN),
49     myStAft(TopAbs_IN)
50   {
51   }
52
53   void Set2D (const Standard_Integer FE, const Standard_Real Param)
54   {
55     myFE    = FE;
56     myParam = Param;
57   }
58
59   void SetState3D (const TopAbs_State stbef, const TopAbs_State staft)
60   {
61     myStBef = stbef;
62     myStAft = staft;
63   }
64
65   void Value2D (Standard_Integer& FE, Standard_Real& Param) const
66   {
67     FE    = myFE;
68     Param = myParam;
69   }
70
71   void State3D (TopAbs_State& stbef, TopAbs_State& staft) const
72   {
73     stbef = myStBef;
74     staft = myStAft;
75   }
76
77 private:
78   Standard_Integer myFE;
79   Standard_Real myParam;
80   TopAbs_State myStBef;
81   TopAbs_State myStAft;
82 };
83
84 #endif // _HLRAlgo_Coincidence_HeaderFile