51 #ifndef CGAL_VECTORS3_H
52 #define CGAL_VECTORS3_H
54 #include <CGAL/SimpleCartesian/PointS3.h>
71 :
e0(FT(0)),
e1(FT(0)),
e2(FT(0)) {}
74 VectorS3(
const FT&
x,
const FT&
y,
const FT&
z,
const FT& w);
123 template <
class FT >
140 template <
class FT >
148 template <
class FT >
156 template <
class FT >
159 {
return (
x() == v.
x()) && (
y() == v.
y()) && (
z() == v.
z()) ; }
161 template <
class FT >
165 {
return !(*
this ==
v); }
168 template <
class FT >
171 {
return (
x() == FT(0)) && (
y() == FT(0)) && (
z() == FT(0)) ; }
173 template <
class FT >
177 {
return !(*
this ==
v); }
179 template <
class FT >
185 template <
class FT >
191 template <
class FT >
197 template <
class FT >
203 return (i==0) ?
x() :
207 template <
class FT >
211 {
return cartesian(i); }
213 template <
class FT >
219 template <
class FT >
225 template <
class FT >
231 template <
class FT >
237 template <
class FT >
242 template <
class FT >
245 {
return (i==3) ? FT(1) : cartesian(i); }
247 template <
class FT >
253 template <
class FT >
259 template <
class FT >
265 template <
class FT >
269 {
return x() * w.
x() +
y() * w.
y() +
z() * w.
z() ; }
271 template <
class FT >
277 template <
class FT >
283 template <
class FT >
288 v.
z() * w.
x() - v.
x() * w.
z() ,
289 v.
x() * w.
y() - v.
y() * w.
x() );
292 template <
class FT >
299 template <
class FT >
305 #ifndef CGAL_NO_OSTREAM_INSERT_VECTORS3
306 template <
class FT >
307 std::ostream& operator<<(std::ostream& os, const VectorS3<FT>&
v)
311 return os <<
v.x() <<
' ' <<
v.y() <<
' ' <<
v.z();
318 os <<
"VectorS3(" <<
v.x() <<
", " <<
v.y() <<
", " <<
v.z() <<
")";
322 #endif // CGAL_NO_OSTREAM_INSERT_VECTORS3
324 #ifndef CGAL_NO_ISTREAM_EXTRACT_VECTORS3
325 template <
class FT >
346 #endif // CGAL_NO_ISTREAM_EXTRACT_VECTORS3
Vector_3< T > operator*(T t, const Vector_3< T > &v)
void int int REAL REAL * y
#define CGAL_kernel_assertion_msg(EX, MSG)
VectorS3< FT > transform(const Aff_transformationS3< FT > &) const
bool operator==(const VectorS3< FT > &p) const
FT homogeneous(int i) const
VectorS3(const Null_vector &)
*********************************************************************Illinois Open Source License ****University of Illinois NCSA **Open Source License University of Illinois All rights reserved ****Developed free of to any person **obtaining a copy of this software and associated documentation to deal with the Software without including without limitation the rights to and or **sell copies of the and to permit persons to whom the **Software is furnished to do subject to the following this list of conditions and the following disclaimers ****Redistributions in binary form must reproduce the above **copyright this list of conditions and the following **disclaimers in the documentation and or other materials **provided with the distribution ****Neither the names of the Center for Simulation of Advanced the University of nor the names of its **contributors may be used to endorse or promote products derived **from this Software without specific prior written permission ****THE SOFTWARE IS PROVIDED AS WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **ARISING OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE v
VectorS3< FT > operator+(const VectorS3< FT > &w) const
VectorS3< FT > operator/(const FT &c) const
void int int int REAL REAL REAL * z
const FT & cartesian(int i) const
VectorS3< FT > cross_product(const VectorS3< FT > &v, const VectorS3< FT > &w)
void write(std::ostream &os, const T &t, const io_Read_write &)
VectorS3(const FT &x, const FT &y, const FT &z)
FT operator*(const VectorS3< FT > &w) const
void read(std::istream &is, T &t, const io_Read_write &)
#define CGAL_BEGIN_NAMESPACE
#define CGAL_kernel_precondition(EX)
#define CGAL_END_NAMESPACE
bool operator!=(const VectorS3< FT > &p) const
Point_2< R > operator-(const Origin &o, const Vector_2< R > &v)
const FT & operator[](int i) const
VectorS3< FT > operator-() const
DirectionS3< FT > direction() const