fixed: auto_ptr -> unique_ptr
[opensg.git] / Source / System / Action / IntersectAction / OSGIntersectAction.inl
blobb5dd16a4adf03129446cb322ad4ccfa3c095d66d
1 /*---------------------------------------------------------------------------*\
2  *                                OpenSG                                     *
3  *                                                                           *
4  *                                                                           *
5  *             Copyright (C) 2000-2002 by the OpenSG Forum                   *
6  *                                                                           *
7  *                            www.opensg.org                                 *
8  *                                                                           *
9  *   contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de          *
10  *                                                                           *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
13  *                                License                                    *
14  *                                                                           *
15  * This library is free software; you can redistribute it and/or modify it   *
16  * under the terms of the GNU Library General Public License as published    *
17  * by the Free Software Foundation, version 2.                               *
18  *                                                                           *
19  * This library is distributed in the hope that it will be useful, but       *
20  * WITHOUT ANY WARRANTY; without even the implied warranty of                *
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
22  * Library General Public License for more details.                          *
23  *                                                                           *
24  * You should have received a copy of the GNU Library General Public         *
25  * License along with this library; if not, write to the Free Software       *
26  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                 *
27  *                                                                           *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
30  *                                Changes                                    *
31  *                                                                           *
32  *                                                                           *
33  *                                                                           *
34  *                                                                           *
35  *                                                                           *
36  *                                                                           *
37 \*---------------------------------------------------------------------------*/
39 //---------------------------------------------------------------------------
40 //  Includes
41 //---------------------------------------------------------------------------
43 OSG_BEGIN_NAMESPACE
45 /***************************************************************************\
46  *                               Types                                     *
47 \***************************************************************************/
50 /***************************************************************************\
51  *                           Class variables                               *
52 \***************************************************************************/
55 /***************************************************************************\
56  *                           Class methods                                 *
57 \***************************************************************************/
60 /*-------------------------------------------------------------------------*\
61  -  public                                                                 -
62 \*-------------------------------------------------------------------------*/
64 /*-------------------------------------------------------------------------*\
65  -  protected                                                              -
66 \*-------------------------------------------------------------------------*/
69 /*-------------------------------------------------------------------------*\
70  -  private                                                                -
71 \*-------------------------------------------------------------------------*/
74 /***************************************************************************\
75  *                           Instance methods                              *
76 \***************************************************************************/
78 /*-------------------------------------------------------------------------*\
79  -  public                                                                 -
80 \*-------------------------------------------------------------------------*/
82 /*------------- constructors & destructors --------------------------------*/
84 /** \brief Constructor
85  */
89 /** \brief Destructor
90  */
93 /*------------------------------ access -----------------------------------*/
95 inline 
96 const Line &IntersectAction::getLine(void) const
98     return _line;
101 inline 
102 Real32 IntersectAction::getMaxDist(void) const
104     return _maxdist;
107 inline 
108 bool IntersectAction::getTestLines(void) const
110    return _testLines;
113 inline
114 Real32 IntersectAction::getTestLineWidth(void) const
116    return _lineTestWidth;
118           
120 inline 
121 bool IntersectAction::didHit(void) const
123     return _hit;
126 inline 
127 Real32 IntersectAction::getHitT(void) const
129     if(! didHit())
130         return -1;
132     return _hitT;
135 inline 
136 Pnt3f IntersectAction::getHitPoint(void) const
138     if(! didHit())
139         return Pnt3f::Null;
140     
141     Pnt3f res;
143     res = _line.getPosition() + getHitT() * _line.getDirection();
145     return res;
148 inline 
149 const Vec3f &IntersectAction::getHitNormal(void) const
151     if(! didHit())
152         return Vec3f::Null;
153     
154     return _hitNormal;
157 inline 
158 Node *IntersectAction::getHitObject(void) const
160     if(! didHit())
161         return NULL;
163     return _hitObject;
166 inline
167 const IntersectAction::NodeStore& IntersectAction::getHitPath(void) const
169     return _hitPath;
172 inline 
173 Int32 IntersectAction::getHitTriangle(void) const
175     if(! didHit())
176         return -1;
178     return _hitTriangle;
181 inline
182 Int32 IntersectAction::getHitLine() const
184     return _hitLine;
187 /*---------------------------- properties ---------------------------------*/
189 /*-------------------------- your_category---------------------------------*/
191 /*-------------------------- assignment -----------------------------------*/
193 /** \brief assignment
194  */
197 /*-------------------------- comparison -----------------------------------*/
199 /** \brief assignment
200  */
203 /** \brief equal
204  */
207 /** \brief unequal
208  */
212 /*-------------------------------------------------------------------------*\
213  -  protected                                                              -
214 \*-------------------------------------------------------------------------*/
218 /*-------------------------------------------------------------------------*\
219  -  private                                                                -
220 \*-------------------------------------------------------------------------*/
222 OSG_END_NAMESPACE