18#ifndef KIG_OBJECTS_LINE_IMP_H
19#define KIG_OBJECTS_LINE_IMP_H
23#include "../misc/common.h"
36 AbstractLineImp(
const LineData& d );
45 static const ObjectImpType*
stype();
49 bool inRect(
const Rect& r,
int width,
const KigWidget& )
const;
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;
75 bool equals(
const ObjectImp& rhs )
const;
82 :
public AbstractLineImp
85 typedef AbstractLineImp
Parent;
90 static const ObjectImpType*
stype();
101 void draw( KigPainter& p )
const;
102 bool contains(
const Coordinate& p,
int width,
const KigWidget& si )
const;
103 Rect surroundingRect()
const;
107 const Coordinate getPoint(
double param,
const KigDocument& )
const;
108 double getParam(
const Coordinate&,
const KigDocument& )
const;
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;
124 const ObjectImpType*
type()
const;
125 void visit( ObjectImpVisitor* vtor )
const;
128 bool internalContainsPoint(
const Coordinate& p,
double threshold )
const;
137 :
public AbstractLineImp
140 typedef AbstractLineImp
Parent;
145 static const ObjectImpType*
stype();
156 void draw( KigPainter& p )
const;
157 bool contains(
const Coordinate& p,
int width,
const KigWidget& si )
const;
158 Rect surroundingRect()
const;
162 const Coordinate getPoint(
double param,
const KigDocument& )
const;
163 double getParam(
const Coordinate&,
const KigDocument& )
const;
167 const ObjectImpType*
type()
const;
168 void visit( ObjectImpVisitor* vtor )
const;
171 bool internalContainsPoint(
const Coordinate& p,
double threshold )
const;
178 :
public AbstractLineImp
181 typedef AbstractLineImp
Parent;
187 static const ObjectImpType*
stype();
197 void draw( KigPainter& p )
const;
198 bool contains(
const Coordinate& p,
int width,
const KigWidget& si )
const;
199 Rect surroundingRect()
const;
203 const Coordinate getPoint(
double param,
const KigDocument& )
const;
204 double getParam(
const Coordinate&,
const KigDocument& )
const;
208 const ObjectImpType*
type()
const;
209 void visit( ObjectImpVisitor* vtor )
const;
212 bool internalContainsPoint(
const Coordinate& p,
double threshold )
const;
An Object class that is the base of the line-like Object's: Segment, Line and Ray.
Definition: line_imp.h:33
double slope() const
Get the slope of this AbstractLine.
const TQString equationString() const
Get a string containing the equation of this line in the form "y = a * x + b ".
bool equals(const Object &rhs) const
Returns true if this Object is equal to rhs.
LineData data() const
Get the LineData for this AbstractLine.
static const ObjectType * stype()
Returns the ObjectType representing the AbstractLine type.
The Coordinate class is the basic class representing a 2D location by its x and y components.
Definition: coordinate.h:34
This class represents a curve: something which is composed of points, like a line,...
Definition: curve_imp.h:29
Simple class representing a line.
Definition: common.h:60
An Object representing a line.
Definition: line_imp.h:179
static const ObjectType * stype()
Returns the ObjectType representing the Line type.
Line(const LineData &d)
Construct a Line from a LineData.
Object * transform(const Transformation &) const
Return this Object, transformed by the transformation t.
bool containsPoint(const Coordinate &p, const KigDocument &doc) const
Return whether this Curve contains the given point.
Line * copy() const
Returns a copy of this Object.
Line(const Coordinate &a, const Coordinate &b)
Construct a Line going through points a and b.
const ObjectType * type() const
Returns the lowermost ObjectType that this object is an instantiation of.
Instances of this class represent a certain Object type.
Definition: object_imp.h:89
The Object class represents the behaviour of an object after it is calculated.
Definition: object_imp.h:219
An Object representing a ray.
Definition: line_imp.h:138
const ObjectType * type() const
Returns the lowermost ObjectType that this object is an instantiation of.
Ray * copy() const
Returns a copy of this Object.
Ray(const Coordinate &a, const Coordinate &b)
Construct a ray, starting at a, and going through b.
Object * transform(const Transformation &) const
Return this Object, transformed by the transformation t.
static const ObjectType * stype()
Returns the ObjectType representing the Ray type.
bool containsPoint(const Coordinate &p, const KigDocument &doc) const
Return whether this Curve contains the given point.
Ray(const LineData &d)
Construct a ray from a LineData.
An Object representing a segment.
Definition: line_imp.h:83
double length() const
Get the length of this segment.
Segment(const LineData &d)
Construct a new segment from a LineData.
static const ObjectType * stype()
Returns the ObjectType representing the Segment type.
Segment * copy() const
Returns a copy of this Object.
const ObjectType * type() const
Returns the lowermost ObjectType that this object is an instantiation of.
bool containsPoint(const Coordinate &p, const KigDocument &doc) const
Return whether this Curve contains the given point.
Segment(const Coordinate &a, const Coordinate &b)
Construct a new segment from point a to point b.
Object * transform(const Transformation &) const
Return this Object, transformed by the transformation t.