0024023: Revamp the OCCT Handle -- automatic
[occt.git] / src / BRepMesh / BRepMesh_PairOfPolygon.hxx
CommitLineData
fc9b36d6 1// Copyright (c) 2013 OPEN CASCADE SAS
2//
3// This file is part of Open CASCADE Technology software library.
4//
5// This library is free software; you can redistribute it and/or modify it under
6// the terms of the GNU Lesser General Public License version 2.1 as published
7// by the Free Software Foundation, with special exception defined in the file
8// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9// distribution for complete text of the license and disclaimer of any warranty.
10//
11// Alternatively, this file may be used under the terms of Open CASCADE
12// commercial license or contractual agreement.
13
14#ifndef _BRepMesh_PairOfPolygon_HeaderFile
15#define _BRepMesh_PairOfPolygon_HeaderFile
16
17#include <Standard.hxx>
18#include <Standard_DefineAlloc.hxx>
19#include <Standard_Macro.hxx>
fc9b36d6 20
21class Poly_PolygonOnTriangulation;
22
23class BRepMesh_PairOfPolygon
24{
25public:
26
27 DEFINE_STANDARD_ALLOC
28
29 //! Constructor. Creates empty pair with null fileds.
30 Standard_EXPORT BRepMesh_PairOfPolygon()
31 {
32 }
33
34 //! Clears pair handles.
35 inline void Clear()
36 {
37 myFirst.Nullify();
38 myLast.Nullify();
39 }
40
41 //! Sets the first element of the pair.
42 //! If last element is empty, also assignes the given polygon to it.
848fa7e3 43 //! @param thePolygon plygon to be set.
fc9b36d6 44 inline void Prepend(const Handle(Poly_PolygonOnTriangulation)& thePolygon)
45 {
46 myFirst = thePolygon;
47
48 if (myLast.IsNull())
49 myLast = thePolygon;
50 }
51
52 //! Sets the last element of the pair.
53 //! If first element is empty, also assignes the given polygon to it.
848fa7e3 54 //! @param thePolygon plygon to be set.
fc9b36d6 55 inline void Append(const Handle(Poly_PolygonOnTriangulation)& thePolygon)
56 {
57 if (myFirst.IsNull())
58 myFirst = thePolygon;
59
60 myLast = thePolygon;
61 }
62
63 //! Returns first polygon on triangulation.
35c0599a 64 inline const Handle(Poly_PolygonOnTriangulation)& First() const
fc9b36d6 65 {
66 return myFirst;
67 }
68
69 //! Returns last polygon on triangulation.
35c0599a 70 inline const Handle(Poly_PolygonOnTriangulation)& Last() const
fc9b36d6 71 {
72 return myLast;
73 }
74
75private:
76
35c0599a 77 Handle(Poly_PolygonOnTriangulation) myFirst;
78 Handle(Poly_PolygonOnTriangulation) myLast;
fc9b36d6 79};
80
81#endif