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

kig

  • sources
  • kde-4.12
  • kdeedu
  • kig
  • objects
line_imp.h
Go to the documentation of this file.
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  int numberOfProperties() const;
52  const QByteArrayList properties() const;
53  const QByteArrayList propertiesInternalNames() const;
54  ObjectImp* property( int which, const KigDocument& d ) const;
55  const char* iconForProperty( int which ) const;
56  const ObjectImpType* impRequirementForProperty( int which ) const;
57  bool isPropertyDefinedOnOrThroughThisImp( int which ) const;
58 
64  double slope() const;
69  const QString 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  int numberOfProperties() const;
111  const QByteArrayList properties() const;
112  const QByteArrayList propertiesInternalNames() const;
113  ObjectImp* property( int which, const KigDocument& d ) const;
114  const char* iconForProperty( int which ) const;
115  const ObjectImpType* impRequirementForProperty( int 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  int numberOfProperties() const;
166  const QByteArrayList properties() const;
167  const QByteArrayList propertiesInternalNames() const;
168  ObjectImp* property( int which, const KigDocument& d ) const;
169  const char* iconForProperty( int which ) const;
170  const ObjectImpType* impRequirementForProperty( int which ) const;
171 
172  RayImp* copy() const;
173 
174  const ObjectImpType* type() const;
175  void visit( ObjectImpVisitor* vtor ) const;
176 
177  bool containsPoint( const Coordinate& p, const KigDocument& doc ) const;
178  bool internalContainsPoint( const Coordinate& p, double threshold ) const;
179 };
180 
184 class LineImp
185  : public AbstractLineImp
186 {
187 public:
188  typedef AbstractLineImp Parent;
189 
194  static const ObjectImpType* stype();
195 
199  LineImp( const Coordinate& a, const Coordinate& b );
203  LineImp( const LineData& d );
204  void draw( KigPainter& p ) const;
205  bool contains( const Coordinate& p, int width, const KigWidget& si ) const;
206  Rect surroundingRect() const;
207 
208  ObjectImp* transform( const Transformation& ) const;
209 
210  const Coordinate getPoint( double param, const KigDocument& ) const;
211  double getParam( const Coordinate&, const KigDocument& ) const;
212 
213  LineImp* copy() const;
214 
215  const ObjectImpType* type() const;
216  void visit( ObjectImpVisitor* vtor ) const;
217 
218  bool containsPoint( const Coordinate& p, const KigDocument& doc ) const;
219  bool internalContainsPoint( const Coordinate& p, double threshold ) const;
220 };
221 
222 #endif
SegmentImp::contains
bool contains(const Coordinate &p, int width, const KigWidget &si) const
Definition: line_imp.cc:284
SegmentImp::draw
void draw(KigPainter &p) const
Definition: line_imp.cc:279
AbstractLineImp::data
LineData data() const
Get the LineData for this AbstractLineImp.
Definition: line_imp.cc:359
ObjectImpType
Instances of this class represent a certain ObjectImp type.
Definition: object_imp.h:95
RayImp::property
ObjectImp * property(int which, const KigDocument &d) const
Definition: line_imp.cc:221
SegmentImp::internalContainsPoint
bool internalContainsPoint(const Coordinate &p, double threshold) const
Definition: line_imp.cc:599
AbstractLineImp::numberOfProperties
int numberOfProperties() const
Definition: line_imp.cc:49
RayImp::visit
void visit(ObjectImpVisitor *vtor) const
Definition: line_imp.cc:504
SegmentImp::length
double length() const
Get the length of this segment.
Definition: line_imp.cc:494
LineImp::contains
bool contains(const Coordinate &p, int width, const KigWidget &si) const
Definition: line_imp.cc:304
SegmentImp::property
ObjectImp * property(int which, const KigDocument &d) const
Definition: line_imp.cc:158
SegmentImp::getParam
double getParam(const Coordinate &, const KigDocument &) const
Definition: line_imp.cc:344
SegmentImp::numberOfProperties
int numberOfProperties() const
Definition: line_imp.cc:103
AbstractLineImp::~AbstractLineImp
~AbstractLineImp()
Definition: line_imp.cc:40
RayImp::contains
bool contains(const Coordinate &p, int width, const KigWidget &si) const
Definition: line_imp.cc:294
AbstractLineImp::property
ObjectImp * property(int which, const KigDocument &d) const
Definition: line_imp.cc:73
AbstractLineImp
An ObjectImp class that is the base of the line-like ObjectImp's: SegmentImp, LineImp and RayImp...
Definition: line_imp.h:31
LineData
Simple class representing a line.
Definition: misc/common.h:49
RayImp::iconForProperty
const char * iconForProperty(int which) const
Definition: line_imp.cc:208
RayImp::surroundingRect
Rect surroundingRect() const
Definition: line_imp.cc:647
RayImp::Parent
AbstractLineImp Parent
Definition: line_imp.h:140
AbstractLineImp::slope
double slope() const
Get the slope of this AbstractLineImp.
Definition: line_imp.cc:235
RayImp::copy
RayImp * copy() const
Returns a copy of this ObjectImp.
Definition: line_imp.cc:329
RayImp::draw
void draw(KigPainter &p) const
Definition: line_imp.cc:289
LineImp::draw
void draw(KigPainter &p) const
Definition: line_imp.cc:299
LineImp::containsPoint
bool containsPoint(const Coordinate &p, const KigDocument &doc) const
Return whether this Curve contains the given point.
Definition: line_imp.cc:614
AbstractLineImp::impRequirementForProperty
const ObjectImpType * impRequirementForProperty(int which) const
Definition: line_imp.cc:54
RayImp
An ObjectImp representing a ray.
Definition: line_imp.h:136
Rect
This file is part of Kig, a KDE program for Interactive Geometry...
Definition: rect.h:34
RayImp::numberOfProperties
int numberOfProperties() const
Definition: line_imp.cc:178
AbstractLineImp::Parent
CurveImp Parent
Definition: line_imp.h:40
RayImp::impRequirementForProperty
const ObjectImpType * impRequirementForProperty(int which) const
Definition: line_imp.cc:201
RayImp::stype
static const ObjectImpType * stype()
Returns the ObjectImpType representing the RayImp type.
Definition: line_imp.cc:562
SegmentImp::surroundingRect
Rect surroundingRect() const
Definition: line_imp.cc:642
LineImp::LineImp
LineImp(const Coordinate &a, const Coordinate &b)
Construct a LineImp going through points a and b.
Definition: line_imp.cc:319
LineImp::getParam
double getParam(const Coordinate &, const KigDocument &) const
Definition: line_imp.cc:415
LineImp::stype
static const ObjectImpType * stype()
Returns the ObjectImpType representing the LineImp type.
Definition: line_imp.cc:528
RayImp::internalContainsPoint
bool internalContainsPoint(const Coordinate &p, double threshold) const
Definition: line_imp.cc:609
Coordinate
The Coordinate class is the basic class representing a 2D location by its x and y components...
Definition: coordinate.h:33
LineImp::visit
void visit(ObjectImpVisitor *vtor) const
Definition: line_imp.cc:509
SegmentImp::transform
ObjectImp * transform(const Transformation &) const
Return this ObjectImp, transformed by the transformation t.
Definition: line_imp.cc:433
LineImp::copy
LineImp * copy() const
Returns a copy of this ObjectImp.
Definition: line_imp.cc:334
SegmentImp::impRequirementForProperty
const ObjectImpType * impRequirementForProperty(int which) const
Definition: line_imp.cc:132
RayImp::type
const ObjectImpType * type() const
Returns the lowermost ObjectImpType that this object is an instantiation of.
Definition: line_imp.cc:584
LineImp::surroundingRect
Rect surroundingRect() const
Definition: line_imp.cc:652
AbstractLineImp::properties
const QByteArrayList properties() const
Definition: line_imp.cc:94
KigPainter
KigPainter is an extended QPainter.
Definition: kigpainter.h:51
SegmentImp::properties
const QByteArrayList properties() const
Definition: line_imp.cc:120
LineImp::transform
ObjectImp * transform(const Transformation &) const
Return this ObjectImp, transformed by the transformation t.
Definition: line_imp.cc:447
SegmentImp::getPoint
const Coordinate getPoint(double param, const KigDocument &) const
Definition: line_imp.cc:339
Transformation
Class representing a transformation.
Definition: kigtransform.h:37
SegmentImp::Parent
AbstractLineImp Parent
Definition: line_imp.h:85
AbstractLineImp::equals
bool equals(const ObjectImp &rhs) const
Returns true if this ObjectImp is equal to rhs.
Definition: line_imp.cc:514
KigWidget
This class is the real widget showing the document.
Definition: kig_view.h:50
RayImp::transform
ObjectImp * transform(const Transformation &) const
Return this ObjectImp, transformed by the transformation t.
Definition: line_imp.cc:455
AbstractLineImp::inRect
bool inRect(const Rect &r, int width, const KigWidget &) const
Definition: line_imp.cc:44
SegmentImp::stype
static const ObjectImpType * stype()
Returns the ObjectImpType representing the SegmentImp type.
Definition: line_imp.cc:545
SegmentImp::iconForProperty
const char * iconForProperty(int which) const
Definition: line_imp.cc:139
RayImp::containsPoint
bool containsPoint(const Coordinate &p, const KigDocument &doc) const
Return whether this Curve contains the given point.
Definition: line_imp.cc:604
LineImp::Parent
AbstractLineImp Parent
Definition: line_imp.h:188
LineImp::getPoint
const Coordinate getPoint(double param, const KigDocument &) const
Definition: line_imp.cc:397
AbstractLineImp::AbstractLineImp
AbstractLineImp(const LineData &d)
Definition: line_imp.cc:474
AbstractLineImp::isPropertyDefinedOnOrThroughThisImp
bool isPropertyDefinedOnOrThroughThisImp(int which) const
Definition: line_imp.cc:624
SegmentImp::visit
void visit(ObjectImpVisitor *vtor) const
Definition: line_imp.cc:499
AbstractLineImp::mdata
LineData mdata
Definition: line_imp.h:35
SegmentImp::copy
SegmentImp * copy() const
Returns a copy of this ObjectImp.
Definition: line_imp.cc:324
AbstractLineImp::equationString
const QString equationString() const
Get a string containing the equation of this line in the form "y = a * x + b ".
Definition: line_imp.cc:241
SegmentImp::type
const ObjectImpType * type() const
Returns the lowermost ObjectImpType that this object is an instantiation of.
Definition: line_imp.cc:579
AbstractLineImp::propertiesInternalNames
const QByteArrayList propertiesInternalNames() const
Definition: line_imp.cc:85
RayImp::getPoint
const Coordinate getPoint(double param, const KigDocument &) const
Definition: line_imp.cc:364
KigDocument
KigDocument is the class holding the real data in a Kig document.
Definition: kig_document.h:36
AbstractLineImp::stype
static const ObjectImpType * stype()
Returns the ObjectImpType representing the AbstractLineImp type.
Definition: line_imp.cc:520
AbstractLineImp::iconForProperty
const char * iconForProperty(int which) const
Definition: line_imp.cc:61
LineImp
An ObjectImp representing a line.
Definition: line_imp.h:184
RayImp::properties
const QByteArrayList properties() const
Definition: line_imp.cc:192
QByteArrayList
QList< QByteArray > QByteArrayList
Definition: objects/common.h:50
RayImp::propertiesInternalNames
const QByteArrayList propertiesInternalNames() const
Definition: line_imp.cc:183
ObjectImp
The ObjectImp class represents the behaviour of an object after it is calculated. ...
Definition: object_imp.h:226
curve_imp.h
LineImp::type
const ObjectImpType * type() const
Returns the lowermost ObjectImpType that this object is an instantiation of.
Definition: line_imp.cc:589
SegmentImp::propertiesInternalNames
const QByteArrayList propertiesInternalNames() const
Definition: line_imp.cc:108
RayImp::getParam
double getParam(const Coordinate &, const KigDocument &) const
Definition: line_imp.cc:370
SegmentImp::SegmentImp
SegmentImp(const Coordinate &a, const Coordinate &b)
Construct a new segment from point a to point b.
Definition: line_imp.cc:309
LineImp::internalContainsPoint
bool internalContainsPoint(const Coordinate &p, double threshold) const
Definition: line_imp.cc:619
SegmentImp::containsPoint
bool containsPoint(const Coordinate &p, const KigDocument &doc) const
Return whether this Curve contains the given point.
Definition: line_imp.cc:594
RayImp::RayImp
RayImp(const Coordinate &a, const Coordinate &b)
Construct a ray, starting at a, and going through b.
Definition: line_imp.cc:314
ObjectImpVisitor
Definition: object_imp.h:56
CurveImp
This class represents a curve: something which is composed of points, like a line, a circle, a locus.
Definition: curve_imp.h:27
SegmentImp
An ObjectImp representing a segment.
Definition: line_imp.h:81
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:35:39 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kig

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

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal