Kig Python Scripting API Documentation

line_imp.h
1 // Copyright (C) 2002 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_LINE_IMP_H
19 #define KIG_OBJECTS_LINE_IMP_H
20 
21 #include "curve_imp.h"
22 
23 #include "../misc/common.h"
24 
25 class LineData;
26 
31 class AbstractLineImp
32  : public CurveImp
33 {
34 protected:
35  LineData mdata;
36  AbstractLineImp( const LineData& d );
37  AbstractLineImp( const Coordinate& a, const Coordinate& b );
38 
39 public:
40  typedef CurveImp Parent;
45  static const ObjectImpType* stype();
46 
47  ~AbstractLineImp();
48 
49  bool inRect( const Rect& r, int width, const KigWidget& ) const;
50 
51  const uint numberOfProperties() const;
52  const QCStringList properties() const;
53  const QCStringList propertiesInternalNames() const;
54  ObjectImp* property( uint which, const KigDocument& d ) const;
55  const char* iconForProperty( uint which ) const;
56  const ObjectImpType* impRequirementForProperty( uint which ) const;
57  bool isPropertyDefinedOnOrThroughThisImp( uint which ) const;
58 
64  double slope() const;
69  const TQString equationString() const;
73  LineData data() const;
74 
75  bool equals( const ObjectImp& rhs ) const;
76 };
77 
81 class SegmentImp
82  : public AbstractLineImp
83 {
84 public:
85  typedef AbstractLineImp Parent;
90  static const ObjectImpType* stype();
91 
95  SegmentImp( const Coordinate& a, const Coordinate& b );
99  SegmentImp( const LineData& d );
100 
101  void draw( KigPainter& p ) const;
102  bool contains( const Coordinate& p, int width, const KigWidget& si ) const;
103  Rect surroundingRect() const;
104 
105  ObjectImp* transform( const Transformation& ) const;
106 
107  const Coordinate getPoint( double param, const KigDocument& ) const;
108  double getParam( const Coordinate&, const KigDocument& ) const;
109 
110  const uint numberOfProperties() const;
111  const QCStringList properties() const;
112  const QCStringList propertiesInternalNames() const;
113  ObjectImp* property( uint which, const KigDocument& d ) const;
114  const char* iconForProperty( uint which ) const;
115  const ObjectImpType* impRequirementForProperty( uint which ) const;
116 
117  SegmentImp* copy() const;
118 
122  double length() const;
123 
124  const ObjectImpType* type() const;
125  void visit( ObjectImpVisitor* vtor ) const;
126 
127  bool containsPoint( const Coordinate& p, const KigDocument& doc ) const;
128  bool internalContainsPoint( const Coordinate& p, double threshold ) const;
129 };
130 
136 class RayImp
137  : public AbstractLineImp
138 {
139 public:
140  typedef AbstractLineImp Parent;
145  static const ObjectImpType* stype();
146 
150  RayImp( const Coordinate& a, const Coordinate& b );
154  RayImp( const LineData& d );
155 
156  void draw( KigPainter& p ) const;
157  bool contains( const Coordinate& p, int width, const KigWidget& si ) const;
158  Rect surroundingRect() const;
159 
160  ObjectImp* transform( const Transformation& ) const;
161 
162  const Coordinate getPoint( double param, const KigDocument& ) const;
163  double getParam( const Coordinate&, const KigDocument& ) const;
164 
165  RayImp* copy() const;
166 
167  const ObjectImpType* type() const;
168  void visit( ObjectImpVisitor* vtor ) const;
169 
170  bool containsPoint( const Coordinate& p, const KigDocument& doc ) const;
171  bool internalContainsPoint( const Coordinate& p, double threshold ) const;
172 };
173 
177 class LineImp
178  : public AbstractLineImp
179 {
180 public:
181  typedef AbstractLineImp Parent;
182 
187  static const ObjectImpType* stype();
188 
192  LineImp( const Coordinate& a, const Coordinate& b );
196  LineImp( const LineData& d );
197  void draw( KigPainter& p ) const;
198  bool contains( const Coordinate& p, int width, const KigWidget& si ) const;
199  Rect surroundingRect() const;
200 
201  ObjectImp* transform( const Transformation& ) const;
202 
203  const Coordinate getPoint( double param, const KigDocument& ) const;
204  double getParam( const Coordinate&, const KigDocument& ) const;
205 
206  LineImp* copy() const;
207 
208  const ObjectImpType* type() const;
209  void visit( ObjectImpVisitor* vtor ) const;
210 
211  bool containsPoint( const Coordinate& p, const KigDocument& doc ) const;
212  bool internalContainsPoint( const Coordinate& p, double threshold ) const;
213 };
214 
215 #endif
The Object class represents the behaviour of an object after it is calculated.
Definition: object_imp.h:218
Simple class representing a line.
Definition: common.h:60
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
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