Salome HOME
85099f148579b9a3b0a8c118c9b5892e34e54bed
[modules/visu.git] / src / PIPELINE / VISU_CutLinesBasePL.hxx
1 // Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 // File:    VISU_CutLinesBasePL.hxx
21 // Author:  Oleg UVAROV
22 // Module : VISU
23 //
24 #ifndef VISU_CutLinesBasePL_HeaderFile
25 #define VISU_CutLinesBasePL_HeaderFile
26
27 #include "VISUPipeline.hxx"
28 #include "VISU_CutPlanesPL.hxx"
29
30 //----------------------------------------------------------------------------
31 class VISU_PIPELINE_EXPORT VISU_CutLinesBasePL : public VISU_CutPlanesPL
32 {
33 public:
34   vtkTypeMacro(VISU_CutLinesBasePL,VISU_CutPlanesPL);
35
36   static 
37   VISU_CutLinesBasePL* 
38   New();
39
40 public:
41   //! Returns direction that is defined by position & orientation of the basic and tool planes
42   const vtkFloatingPointType* 
43   GetRealDirLn()
44   {
45     return myRealDirLn;
46   }
47
48   /*! 
49     Returns direction that corresponds to the myRealDirLn,
50     but has the same direction as main axis.
51   */
52   const vtkFloatingPointType* 
53   GetDirLn()
54   {
55     return myDirLn;
56   }
57
58   /*!
59     Returns coordinates of 3D point that shows 
60     where is the first intersection of the given mesh.
61     with the defined direction.
62   */
63   const vtkFloatingPointType* 
64   GetBasePnt()
65   { 
66     return myBasePnt;
67   }
68
69   /*!
70     Returns three floating point numbers that defines the following values:
71     1. Distance between the initial point of intersection and origin of coordinates;
72     2. Distance between the last point of intersection and origin of coordinates;
73     3. Distance between the last point and initial points of intersection.
74     with the defined direction.
75   */
76   const vtkFloatingPointType* 
77   GetBoundPrjLn()
78   {
79     return myBoundPrjLn;
80   }
81
82 protected:
83   VISU_CutLinesBasePL();
84
85   vtkFloatingPointType myDirLn[3];
86   vtkFloatingPointType myRealDirLn[3];
87   vtkFloatingPointType myBoundPrjLn[3];
88   vtkFloatingPointType myBasePnt[3];
89
90 private:
91   VISU_CutLinesBasePL(const VISU_CutLinesBasePL&);  // Not implemented.
92   void operator=(const VISU_CutLinesBasePL&);  // Not implemented.
93 };
94
95
96 #endif