Kig Python Scripting API Documentation

kigtransform.h
1 
22 #ifndef KIG_MISC_KIGTRANSFORM_H
23 #define KIG_MISC_KIGTRANSFORM_H
24 
25 #include "coordinate.h"
26 #include <vector>
27 
28 class LineData;
29 
38 {
39  double mdata[3][3];
40  bool mIsHomothety;
41  bool mIsAffine;
43 public:
44  ~Transformation();
45  Transformation( double data[3][3], bool ishomothety );
46 
53  const Coordinate apply( const double x0, const double x1, const double x2 ) const;
54  const Coordinate apply( const Coordinate& c ) const;
55  const Coordinate apply0( const Coordinate& c ) const;
56 
60  bool isHomothetic() const;
61  bool isAffine() const;
62  double getProjectiveIndicator( const Coordinate& c ) const;
63  double getAffineDeterminant() const;
64  double getRotationAngle() const;
65  const Coordinate apply2by2only( const Coordinate& c ) const;
74  double apply( double length ) const;
75  double data( int r, int c ) const;
80  const Transformation inverse( bool& valid ) const;
81 
86  static const Transformation identity();
91  static const Transformation scalingOverPoint( double factor, const Coordinate& center = Coordinate() );
97  static const Transformation scalingOverLine( double factor, const LineData& l );
101  static const Transformation translation( const Coordinate& c );
106  static const Transformation rotation( double angle, const Coordinate& center = Coordinate() );
111  static const Transformation pointReflection( const Coordinate& c );
116  static const Transformation lineReflection( const LineData& l );
122  static const Transformation harmonicHomology( const Coordinate& center,
123  const LineData& axis );
128  static const Transformation affinityGI3P(
129  const std::vector<Coordinate>& FromPoints,
130  const std::vector<Coordinate>& ToPoints,
131  bool& valid );
136  static const Transformation projectivityGI4P(
137  const std::vector<Coordinate>& FromPoints,
138  const std::vector<Coordinate>& ToPoints,
139  bool& valid );
145  static const Transformation castShadow( const Coordinate& ls,
146  const LineData& d );
151  static const Transformation projectiveRotation( double alpha,
152  const Coordinate& d,
153  const Coordinate& t );
154 
159  static const Transformation similitude(
160  const Coordinate& center, double theta, double factor );
161 
166  friend const Transformation operator*( const Transformation& a, const Transformation& b );
167 
171  friend bool operator==( const Transformation& lhs, const Transformation& rhs );
172 };
173 
174 const Transformation operator*( const Transformation&, const Transformation& );
175 bool operator==( const Transformation& lhs, const Transformation& rhs );
176 
177 // enum tWantArgsResult { tComplete, tNotComplete, tNotGood };
178 
179 // Transformation getProjectiveTransformation(
180 // int transformationsnum, Object *mtransformations[],
181 // bool& valid );
182 
183 // tWantArgsResult WantTransformation ( Objects::const_iterator& i,
184 // const Objects& os );
185 
186 // TQString getTransformMessage ( const Objects& os, const Object *o );
187 
188 // bool isHomoteticTransformation ( double transformation[3][3] );
189 
190 #endif // KIG_MISC_KIGTRANSFORM_H
KDE Logo
This file is part of the documentation for tdelibs 0.10.7.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Fri Mar 15 2019 07:46:22 by doxygen 1.8.1.2 written by Dimitri van Heesch, © 1997-2001