ZeusMath-Library  2.0.4
IStraightLine2D.hpp
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (C) 2011 by Benjamin Hadorn (b_hadorn@bluewin.ch)
3  *****************************************************************************
4  * Project : Zeus Math Library
5  * Module : IStraightLine2D
6  * Package : Zeus.ZeusMath.Geometry.Interfaces
7  * Author : Martin Abbuehl
8  * Date : 27.12.2011
9  * System : Zeus-Framework
10  *****************************************************************************
11  * Licence: *
12  * This library is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU Lesser General Public License as *
14  * published by the Free Software Foundation; either version *
15  * 2.1 of the License, or (at your option) any later version. *
16  * *
17  * This library is distributed in the hope that it will be useful, *
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
20  * GNU Lesser General Public License for more details. *
21  * *
22  * You should have received a copy of the GNU Lesser General Public *
23  * License along with this library; if not, write to the Free Software *
24  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA *
25  *****************************************************************************/
26 
27 /*****************************************************************************
28  * Changes:
29  * 27.12.2011 bha: created zeus 2.0
30  *****************************************************************************/
31 
32 #ifndef IStraightLine2DHPP
33 #define IStraightLine2DHPP
34 
38 
39 
40 #define INTERFACE_IStraightLine2D TIID(0x6dab035a, 0x39ce, 0x4902, 0x9c, 0x88, 0xef, 0x6e, 0x15, 0x85, 0x5d, 0xf4)
41 
42 
43 
44 BEGIN_NAMESPACE_Zeus
45 
46 
47 /******************************************************************************/
50 /******************************************************************************/
52 {
53  HIDE_ASSIGNMENT_OPERATOR(IStraightLine2D)
54 
55  public:
56  /******************************************************************************/
60  /******************************************************************************/
61  virtual const IVector2D& MQUALIFIER getInitialVector() const = 0;
62 
63  /******************************************************************************/
67  /******************************************************************************/
68  virtual const IVector2D& MQUALIFIER getDirectionVector() const = 0;
69 
70  /******************************************************************************/
74  /******************************************************************************/
75  virtual void MQUALIFIER setInitialVector(const IVector2D& rVecInitial) = 0;
76 
77  /******************************************************************************/
81  /******************************************************************************/
82  virtual void MQUALIFIER setDirectionVector(const IVector2D& rVecDirection) = 0;
83 
84  /******************************************************************************/
91  /******************************************************************************/
92  virtual bool MQUALIFIER getSlope(Float& rfSlope) const = 0;
93 
94  /******************************************************************************/
101  /******************************************************************************/
102  virtual bool MQUALIFIER getYIntercept(Float& rfYIntercept) const = 0;
103 
104  /******************************************************************************/
109  /******************************************************************************/
110  virtual void MQUALIFIER assign(const IStraightLine2D& rStraightLine) = 0;
111 
112  /******************************************************************************/
114  /******************************************************************************/
115  /******************************************************************************/
117  /******************************************************************************/
118  virtual void MQUALIFIER initAsAxisX() = 0;
119 
120  /******************************************************************************/
122  /******************************************************************************/
123  virtual void MQUALIFIER initAsAxisY() = 0;
124 
125  /******************************************************************************/
129  /******************************************************************************/
130  virtual bool MQUALIFIER isAxisX() const = 0;
131 
132  /******************************************************************************/
136  /******************************************************************************/
137  virtual bool MQUALIFIER isAxisY() const = 0;
138 
139  /******************************************************************************/
143  /******************************************************************************/
144  virtual bool MQUALIFIER isValid() const = 0;
145 
146  /******************************************************************************/
148  /******************************************************************************/
149  /******************************************************************************/
155  /******************************************************************************/
156  virtual bool MQUALIFIER isEqual(const IStraightLine2D& rStraightLine) const = 0;
157 
158  /******************************************************************************/
164  /******************************************************************************/
165  virtual bool MQUALIFIER isParallel(const IStraightLine2D& rStraightLine) const = 0;
166 
167  /******************************************************************************/
169  /******************************************************************************/
170  /******************************************************************************/
176  /******************************************************************************/
177  virtual void MQUALIFIER calcPointFromParameter(const Float& fParameter, IVector2D& rVecPoint) const = 0;
178 
179  /******************************************************************************/
187  /******************************************************************************/
188  virtual bool MQUALIFIER calcParameterFromPoint(const IVector2D& rVecPoint, Float& fParameter) const = 0;
189 
190  /******************************************************************************/
192  /******************************************************************************/
193  /******************************************************************************/
201  /******************************************************************************/
202  virtual bool MQUALIFIER calcPointAtX(const Float& x, IVector2D& rVecPoint) const = 0;
203 
204  /******************************************************************************/
212  /******************************************************************************/
213  virtual bool MQUALIFIER calcPointAtY(const Float& y, IVector2D& rVecPoint) const = 0;
214 
215  /******************************************************************************/
221  /******************************************************************************/
222  virtual bool MQUALIFIER arePointsOnSameSide(const IVector2D& rVecPoint1,
223  const IVector2D& rVecPoint2) const = 0;
224 };
225 
226 END_NAMESPACE_Zeus
227 
228 
229 #endif
230 
Definition: IGeometricObject2D.hpp:54
Definition: IStraightLine2D.hpp:51
Definition: IVector2D.hpp:47


Written by Benjamin Hadorn http://www.xatlantis.ch.
Last change made on Wed Sep 14 2016 06:45:52