Kig Python Scripting API Documentation

conic_imp.h
1 // Copyright (C) 2003 Dominique Devriese <devriese@kde.org>
2 
3 // This program is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU General Public License
5 // as published by the Free Software Foundation; either version 2
6 // of the License, or (at your option) any later version.
7 
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software
15 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 // 02110-1301, USA.
17 
18 #ifndef KIG_OBJECTS_CONIC_IMP_H
19 #define KIG_OBJECTS_CONIC_IMP_H
20 
21 #include "curve_imp.h"
22 
23 #include "../misc/conic-common.h"
24 
38 class ConicImp
39  : public CurveImp
40 {
41 protected:
42  ConicImp();
43  ~ConicImp();
44 public:
45  typedef CurveImp Parent;
49  static const ObjectImpType* stype();
50 
51  ObjectImp* transform( const Transformation& ) const;
52 
53  void draw( KigPainter& p ) const;
54  bool contains( const Coordinate& p, int width, const KigWidget& ) const;
55  bool inRect( const Rect& r, int width, const KigWidget& ) const;
56  bool valid() const;
57  Rect surroundingRect() const;
58 
59  const uint numberOfProperties() const;
60  const ObjectImpType* impRequirementForProperty( uint which ) const;
61  bool isPropertyDefinedOnOrThroughThisImp( uint which ) const;
62  const QCStringList properties() const;
63  const QCStringList propertiesInternalNames() const;
64  const char* iconForProperty( uint which ) const;
65  ObjectImp* property( uint which, const KigDocument& w ) const;
66 
67  double getParam( const Coordinate& point, const KigDocument& ) const;
68  const Coordinate getPoint( double param, const KigDocument& ) const;
69 
70  // information about ourselves.. These are all virtual, because a
71  // trivial subclass like CircleImp can override these with trivial
72  // versions..
73 
81  virtual int conicType() const;
85  virtual TQString conicTypeString() const;
90  virtual TQString cartesianEquationString( const KigDocument& w ) const;
96  virtual TQString polarEquationString( const KigDocument& w ) const;
100  virtual const ConicCartesianData cartesianData() const;
104  virtual const ConicPolarData polarData() const = 0;
108  virtual Coordinate focus1() const;
112  virtual Coordinate focus2() const;
113 
114  const ObjectImpType* type() const;
115  void visit( ObjectImpVisitor* vtor ) const;
116 
117  bool equals( const ObjectImp& rhs ) const;
118 
119  bool containsPoint( const Coordinate& p, const KigDocument& doc ) const;
120  bool internalContainsPoint( const Coordinate& p, double threshold ) const;
121 };
122 
127 class ConicImpCart
128  : public ConicImp
129 {
130  ConicCartesianData mcartdata;
131  ConicPolarData mpolardata;
132 public:
133  ConicImpCart( const ConicCartesianData& data );
134  ~ConicImpCart();
135  ConicImpCart* copy() const;
136 
137  const ConicCartesianData cartesianData() const;
138  const ConicPolarData polarData() const;
139 };
140 
145 class ConicImpPolar
146  : public ConicImp
147 {
148  ConicPolarData mdata;
149 public:
150  ConicImpPolar( const ConicPolarData& data );
151  ~ConicImpPolar();
152  ConicImpPolar* copy() const;
153 
154  const ConicPolarData polarData() const;
155 };
156 
157 #endif
The Object class represents the behaviour of an object after it is calculated.
Definition: object_imp.h:218
Cartesian Conic Data.
Definition: conic-common.h:37
The Coordinate class is the basic class representing a 2D location by its x and y components...
Definition: coordinate.h:33
Class representing a transformation.
Definition: kigtransform.h:37
This class represents an equation of a conic in the form .
Definition: conic-common.h:85
KDE Logo
This file is part of the documentation for tdelibs .
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed May 15 2024 09:48:27 by doxygen 1.8.13 written by Dimitri van Heesch, © 1997-2001