0030640: Visualization, Graphic3d_Camera - add option creating Projection matrix...
[occt.git] / src / Graphic3d / Graphic3d_SequenceOfHClipPlane.cxx
1 // Copyright (c) 2018 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 #include <Graphic3d_SequenceOfHClipPlane.hxx>
15
16 IMPLEMENT_STANDARD_RTTIEXT(Graphic3d_SequenceOfHClipPlane, Standard_Transient)
17
18 // =======================================================================
19 // function : Graphic3d_SequenceOfHClipPlane
20 // purpose  :
21 // =======================================================================
22 Graphic3d_SequenceOfHClipPlane::Graphic3d_SequenceOfHClipPlane()
23 : myToOverrideGlobal (Standard_False)
24 {
25   //
26 }
27
28 // =======================================================================
29 // function : Append
30 // purpose  :
31 // =======================================================================
32 bool Graphic3d_SequenceOfHClipPlane::Append (const Handle(Graphic3d_ClipPlane)& theItem)
33 {
34   for (NCollection_Sequence<Handle(Graphic3d_ClipPlane)>::Iterator anItemIter (myItems); anItemIter.More(); anItemIter.Next())
35   {
36     if (anItemIter.Value() == theItem)
37     {
38       return false;
39     }
40   }
41   myItems.Append (theItem);
42   return true;
43 }
44
45 // =======================================================================
46 // function : Remove
47 // purpose  :
48 // =======================================================================
49 bool Graphic3d_SequenceOfHClipPlane::Remove (const Handle(Graphic3d_ClipPlane)& theItem)
50 {
51   for (NCollection_Sequence<Handle(Graphic3d_ClipPlane)>::Iterator anItemIter (myItems); anItemIter.More(); anItemIter.Next())
52   {
53     if (anItemIter.Value() == theItem)
54     {
55       myItems.Remove (anItemIter);
56       return true;
57     }
58   }
59   return false;
60 }
61
62 // =======================================================================
63 // function : DumpJson
64 // purpose  :
65 // =======================================================================
66 void Graphic3d_SequenceOfHClipPlane::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
67 {
68   OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myToOverrideGlobal)
69
70   for (NCollection_Sequence<Handle(Graphic3d_ClipPlane)>::Iterator anIterator (myItems); anIterator.More(); anIterator.Next())
71   {
72     const Handle(Graphic3d_ClipPlane)& aClipPlane = anIterator.Value();
73     OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, aClipPlane.get())
74   }
75 }