Salome HOME
Initial version
[modules/gui.git] / src / SPlot2d / SPlot2d_CurveContainer.cxx
1 //  File   : SPlot2d_CurveContainer.cxx
2 //  Author : Sergey RUIN
3 //  Module : SUIT
4
5 #include "SPlot2d_CurveContainer.h"
6 using namespace std;
7
8 /*!
9   Constructor
10 */
11 SPlot2d_CurveContainer::SPlot2d_CurveContainer()
12 {
13   myCurves.setAutoDelete( false );
14 }
15 /*!
16   Destructor
17 */
18 SPlot2d_CurveContainer::~SPlot2d_CurveContainer()
19 {
20   
21 }
22 /*!
23   Adds curve if not exist yet in the container
24 */
25 void SPlot2d_CurveContainer::addCurve( Plot2d_Curve* curve )
26 {
27   if ( myCurves.find( curve ) < 0 )
28     myCurves.append( curve );
29 }
30 /*!
31   Removes curve form the container ( and deletes it if <alsoDelete> is true )
32 */
33 void SPlot2d_CurveContainer::removeCurve( const int index, bool alsoDelete )
34 {
35   Plot2d_Curve* curve = myCurves.take( index );
36   if ( curve && alsoDelete )
37     delete curve;
38 }
39 /*!
40   Clears container contents ( removes and deletes all curves )
41 */
42 void SPlot2d_CurveContainer::clear( bool alsoDelete )
43 {
44   while( myCurves.count() > 0 ) {
45     Plot2d_Curve* curve = myCurves.take( 0 );
46     if ( curve && alsoDelete )
47       delete curve;
48   }
49 }
50 /*!
51   Gets nb of curves in container
52 */
53 int SPlot2d_CurveContainer::count()
54 {
55   return myCurves.count();
56 }
57 /*!
58   Returns true if contains no curves
59 */
60 bool SPlot2d_CurveContainer::isEmpty() const
61 {
62   return myCurves.isEmpty();
63 }
64 /*!
65   Gets curve by index
66 */
67 Plot2d_Curve* SPlot2d_CurveContainer::curve( const int index )
68 {
69   return myCurves.at( index );
70 }
71
72