conic_imp.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef KIG_OBJECTS_CONIC_IMP_H
00019 #define KIG_OBJECTS_CONIC_IMP_H
00020
00021 #include "curve_imp.h"
00022
00023 #include "../misc/conic-common.h"
00024
00038 class ConicImp
00039 : public CurveImp
00040 {
00041 protected:
00042 ConicImp();
00043 ~ConicImp();
00044 public:
00045 typedef CurveImp Parent;
00049 static const ObjectImpType* stype();
00050
00051 ObjectImp* transform( const Transformation& ) const;
00052
00053 void draw( KigPainter& p ) const;
00054 bool contains( const Coordinate& p, int width, const KigWidget& ) const;
00055 bool inRect( const Rect& r, int width, const KigWidget& ) const;
00056 bool valid() const;
00057 Rect surroundingRect() const;
00058
00059 const uint numberOfProperties() const;
00060 const ObjectImpType* impRequirementForProperty( uint which ) const;
00061 bool isPropertyDefinedOnOrThroughThisImp( uint which ) const;
00062 const QCStringList properties() const;
00063 const QCStringList propertiesInternalNames() const;
00064 const char* iconForProperty( uint which ) const;
00065 ObjectImp* property( uint which, const KigDocument& w ) const;
00066
00067 double getParam( const Coordinate& point, const KigDocument& ) const;
00068 const Coordinate getPoint( double param, const KigDocument& ) const;
00069
00070
00071
00072
00073
00081 virtual int conicType() const;
00085 virtual TQString conicTypeString() const;
00090 virtual TQString cartesianEquationString( const KigDocument& w ) const;
00096 virtual TQString polarEquationString( const KigDocument& w ) const;
00100 virtual const ConicCartesianData cartesianData() const;
00104 virtual const ConicPolarData polarData() const = 0;
00108 virtual Coordinate focus1() const;
00112 virtual Coordinate focus2() const;
00113
00114 const ObjectImpType* type() const;
00115 void visit( ObjectImpVisitor* vtor ) const;
00116
00117 bool equals( const ObjectImp& rhs ) const;
00118
00119 bool containsPoint( const Coordinate& p, const KigDocument& doc ) const;
00120 bool internalContainsPoint( const Coordinate& p, double threshold ) const;
00121 };
00122
00127 class ConicImpCart
00128 : public ConicImp
00129 {
00130 ConicCartesianData mcartdata;
00131 ConicPolarData mpolardata;
00132 public:
00133 ConicImpCart( const ConicCartesianData& data );
00134 ~ConicImpCart();
00135 ConicImpCart* copy() const;
00136
00137 const ConicCartesianData cartesianData() const;
00138 const ConicPolarData polarData() const;
00139 };
00140
00145 class ConicImpPolar
00146 : public ConicImp
00147 {
00148 ConicPolarData mdata;
00149 public:
00150 ConicImpPolar( const ConicPolarData& data );
00151 ~ConicImpPolar();
00152 ConicImpPolar* copy() const;
00153
00154 const ConicPolarData polarData() const;
00155 };
00156
00157 #endif
This file is part of the documentation for tdelibs 0.10.7.