• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdeedu
  • Sitemap
  • Contact Us
 

kig

conic-common.h

Go to the documentation of this file.
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

kig

Skip menu "kig"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

kdeedu

Skip menu "kdeedu"
  • kalzium
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  •   docs
  •   src
  • parley
  •   stepcore
Generated for kdeedu by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal