51 #ifndef CGAL_AFF_TRANSFORMATIONS3_H
52 #define CGAL_AFF_TRANSFORMATIONS3_H
59 #ifdef CGAL_CFG_INCOMPLETE_TYPE_BUG_1
60 #define CGAL_NO_PLANE_TRANSFORM_IN_AT
61 #endif // CGAL_CFG_INCOMPLETE_TYPE_BUG_1
81 operator<< (std::ostream& os, Translation_repS3<FT>& t);
85 operator<< (std::ostream& os, Scaling_repS3<FT>& t);
89 operator<< (std::ostream& os, const Aff_transformationS3<FT>& t);
106 virtual bool is_even()
const = 0;
108 virtual std::ostream&
print(std::ostream& os)
const = 0;
114 template <
class FT >
133 const FT& m21,
const FT& m22,
const FT& m23,
134 const FT& m31,
const FT& m32,
const FT& m33)
141 const FT& m13,
const FT& m14,
143 const FT& m21,
const FT& m22,
144 const FT& m23,
const FT& m24,
146 const FT& m31,
const FT& m32,
147 const FT& m33,
const FT& m34)
280 case 0:
return FT(0);
281 case 1:
return FT(0);
282 case 2:
return FT(0);
283 case 3:
return FT(1);
290 std::ostream&
print(std::ostream& os)
const
292 os <<
" "<<
t11 <<
' '<<
t12 <<
' '<<
t13 <<
' '<<
t14 <<
"\n";
293 os <<
" "<<
t21 <<
' '<<
t22 <<
' '<<
t23 <<
' '<<
t24 <<
"\n";
294 os <<
" "<<
t31 <<
' '<<
t32 <<
' '<<
t33 <<
' '<<
t34 <<
")\n";
306 template <
class FT >
372 if (j==i)
return FT(1);
377 std::ostream&
print(std::ostream& os)
const
380 os <<
" "<< ft1 <<
' '<< ft0 <<
' '<< ft0 <<
' '
383 os <<
" "<< ft0 <<
' '<< ft1 <<
' '<< ft0 <<
' '
386 os <<
" "<< ft0 <<
' '<< ft0 <<
' '<< ft1 <<
' '
396 template <
class FT >
459 if (i!=j)
return FT(0);
460 if (i==3)
return FT(1);
465 virtual std::ostream&
print(std::ostream& os)
const
468 os <<
" "<<
scalefactor <<
' '<< ft0 <<
' '<< ft0 <<
' '
470 os <<
" "<< ft0 <<
' '<<
scalefactor <<
' '<< ft0 <<
' '
472 os <<
" "<< ft0 <<
' '<< ft0 <<
' '<<
scalefactor <<
' '
483 template <
class FT >
513 const FT& w = FT(1));
527 const FT& m13,
const FT& m14,
528 const FT& m21,
const FT& m22,
529 const FT& m23,
const FT& m24,
530 const FT& m31,
const FT& m32,
531 const FT& m33,
const FT& m34,
532 const FT& w = FT(1));
546 #ifndef CGAL_NO_PLANE_TRANSFORM_IN_AT
549 #endif // CGAL_NO_PLANE_TRANSFORM_IN_AT
568 template <
class FT >
577 template <
class FT >
586 template <
class FT >
593 template <
class FT >
605 template <
class FT >
607 const FT& m13,
const FT& m14,
608 const FT& m21,
const FT& m22,
609 const FT& m23,
const FT& m24,
610 const FT& m31,
const FT& m32,
611 const FT& m33,
const FT& m34,
616 m21/w, m22/w, m23/w, m24/w,
617 m31/w, m32/w, m33/w, m34/w);
624 template <
class FT >
626 const FT& m11,
const FT& m12,
const FT& m13,
627 const FT& m21,
const FT& m22,
const FT& m23,
628 const FT& m31,
const FT& m32,
const FT& m33,
634 m31/w, m32/w, m33/w);
641 template <
class FT >
644 template <
class FT >
647 return ptr()->transform(p);
650 template <
class FT >
657 template <
class FT >
662 return ptr()->transform(v);
665 template <
class FT >
673 template <
class FT >
678 return ptr()->transform(d);
681 template <
class FT >
689 #ifndef CGAL_NO_PLANE_TRANSFORM_IN_AT
690 template <
class FT >
698 template <
class FT >
705 #endif // CGAL_NO_PLANE_TRANSFORM_IN_AT
707 template <
class FT >
710 return ptr()->inverse();
714 template <
class FT >
717 return ptr()->general_form();
720 template <
class FT >
723 return ptr()->transpose();
726 template <
class FT >
729 return ptr()->is_even();
732 template <
class FT >
735 return ! (ptr()->is_even());
740 template <
class FT >
765 template <
class FT >
775 #ifndef CGAL_NO_OSTREAM_INSERT_AFF_TRANSFORMATIONS3
776 template <
class FT >
777 std::ostream& operator<<(std::ostream& os, const Aff_transformationS3<FT>& t)
782 #endif // CGAL_NO_OSTREAM_INSERT_AFF_TRANSFORMATIONS3
784 #ifndef CGAL_NO_ISTREAM_EXTRACT_AFF_TRANSFORMATIONS3
785 #endif // CGAL_NO_ISTREAM_EXTRACT_AFF_TRANSFORMATIONS3
791 #endif // CGAL_AFF_TRANSFORMATIONS3_H
PlaneS3 transform(const Aff_transformationS3< FT > &t) const
CGAL_BEGIN_NAMESPACE FT det2x2_by_formula(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
virtual FT cartesian(int i, int j) const
Vector_3< T > operator*(T t, const Vector_3< T > &v)
Sign sign_of_determinant3x3(const FT &a00, const FT &a01, const FT &a02, const FT &a10, const FT &a11, const FT &a12, const FT &a20, const FT &a21, const FT &a22)
DirectionS3< FT > transform(const DirectionS3< FT > &d) const
Scaling_repS3(const FT &s)
CGAL_KERNEL_MEDIUM_INLINE FT det3x3_by_formula(const FT &a00, const FT &a01, const FT &a02, const FT &a10, const FT &a11, const FT &a12, const FT &a20, const FT &a21, const FT &a22)
VectorS3< FT > transform(const VectorS3< FT > &v) const
Aff_transformationS3< FT > general_form() const
*********************************************************************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
PointS3< FT > transform(const PointS3< FT > &p) const
Aff_transformationS3< FT > general_form() const
virtual FT cartesian(int i, int j) const
CGAL_END_NAMESPACE CGAL_BEGIN_NAMESPACE typedef Leda_like_handle Handle
DirectionS3< FT > transform(const DirectionS3< FT > &d) const
Aff_transformationS3< FT > inverse() const
PointS3< FT > transform(const PointS3< FT > &p) const
VectorS3< FT > vector() const
virtual bool is_even() const
Aff_transformationS3< FT > transpose() const
Translation_repS3(const VectorS3< FT > &tv)
Aff_transformationS3< FT > transpose() const
Aff_transformationS3< FT > inverse() const
#define CGAL_BEGIN_NAMESPACE
#define CGAL_NULL_TMPL_ARGS
VectorS3< FT > translationvector
VectorS3< FT > transform(const VectorS3< FT > &v) const
virtual std::ostream & print(std::ostream &os) const
#define CGAL_END_NAMESPACE
std::ostream & print(std::ostream &os) const
virtual bool is_even() const