Kig Python Scripting API Documentation

conic-common.h

00001 
00021 #ifndef KIG_MISC_CONIC_COMMON_H
00022 #define KIG_MISC_CONIC_COMMON_H
00023 
00024 #include "coordinate.h"
00025 #include <vector>
00026 #include "kignumerics.h"
00027 
00028 class ConicPolarData;
00029 class Transformation;
00030 class LineData;
00031 
00037 class ConicCartesianData
00038 {
00039 public:
00040   double coeffs[6];
00041   ConicCartesianData();
00047   explicit ConicCartesianData( const ConicPolarData& d );
00053   ConicCartesianData( double a, double b, double c,
00054                       double d, double e, double f )
00055     {
00056       coeffs[0] = a;
00057       coeffs[1] = b;
00058       coeffs[2] = c;
00059       coeffs[3] = d;
00060       coeffs[4] = e;
00061       coeffs[5] = f;
00062     }
00063   ConicCartesianData( const double incoeffs[6] );
00064 
00070   static ConicCartesianData invalidData();
00076   bool valid() const;
00077 };
00078 
00085 class ConicPolarData
00086 {
00087 public:
00094   explicit ConicPolarData( const ConicCartesianData& data );
00095   explicit ConicPolarData();
00100   ConicPolarData( const Coordinate& focus1, double dimen,
00101                   double ecostheta0, double esintheta0 );
00102 
00106   Coordinate focus1;
00110   double pdimen;
00114   double ecostheta0;
00118   double esintheta0;
00119 };
00120 
00121 bool operator==( const ConicPolarData& lhs, const ConicPolarData& rhs );
00122 
00137 enum LinearConstraints {
00138   noconstraint, zerotilt, parabolaifzt, circleifzt,
00139   equilateral, ysymmetry, xsymmetry
00140 };
00141 
00153 const ConicCartesianData calcConicThroughPoints (
00154     const std::vector<Coordinate>& points,
00155     const LinearConstraints c1 = noconstraint,
00156     const LinearConstraints c2 = noconstraint,
00157     const LinearConstraints c3 = noconstraint,
00158     const LinearConstraints c4 = noconstraint,
00159     const LinearConstraints c5 = noconstraint);
00160 
00169 const ConicPolarData calcConicBFFP(
00170   const std::vector<Coordinate>& args,
00171   int type );
00172 
00177 const ConicPolarData calcConicBDFP(
00178   const LineData& d, const Coordinate& f, const Coordinate& p );
00179 
00184 const ConicCartesianData calcConicByAsymptotes(
00185   const LineData& line1,
00186   const LineData& line2,
00187   const Coordinate& p );
00188 
00197 const LineData calcConicPolarLine (
00198   const ConicCartesianData& data,
00199   const Coordinate& cpole,
00200   bool& valid );
00201 
00210 const Coordinate calcConicPolarPoint (
00211   const ConicCartesianData& data,
00212   const LineData& polar );
00213 
00230 const Coordinate calcConicLineIntersect( const ConicCartesianData& c,
00231                                          const LineData& l,
00232            double knownparam,
00233                                          int which );
00234 
00244 const LineData calcConicAsymptote(
00245   const ConicCartesianData data,
00246   int which, bool &valid );
00247 
00261 const LineData calcConicRadical( const ConicCartesianData& cequation1,
00262                                  const ConicCartesianData& cequation2,
00263                                  int which, int zeroindex, bool& valid );
00264 
00274 const ConicCartesianData calcConicTransformation (
00275   const ConicCartesianData& data,
00276   const Transformation& t, bool& valid );
00277 
00278 #endif // KIG_MISC_CONIC_COMMON_H
KDE Logo
This file is part of the documentation for kdelibs 0.10.7.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Mar 19 00:49:22 2008 by doxygen 1.5.5 written by Dimitri van Heesch, © 1997-2001