Kig Python Scripting API Documentation

Conic Class Reference

An Object representing a conic. More...

Inheritance diagram for Conic:

Inheritance graph
[legend]
Collaboration diagram for Conic:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Objecttransform (const Transformation &) const
 Return this Object, transformed by the transformation t.
bool valid () const
 Returns true if this is a valid Object.
virtual int conicType () const
 Type of conic.
virtual QString conicTypeString () const
 A string containing "Hyperbola", "Parabola" or "Ellipse".
virtual QString cartesianEquationString (const KigDocument &w) const
 A string containing the cartesian equation of the conic.
virtual QString polarEquationString (const KigDocument &w) const
 A string containing the polar equation of the conic.
virtual const ConicCartesianData cartesianData () const
 Return the cartesian representation of this conic.
virtual const ConicPolarData polarData () const =0
 Return the polar representation of this conic.
virtual Coordinate focus1 () const
 Return the first focus of this conic.
virtual Coordinate focus2 () const
 Return the second focus of this conic.
const ObjectTypetype () const
 Returns the lowermost ObjectType that this object is an instantiation of.
bool equals (const Object &rhs) const
 Returns true if this Object is equal to rhs.
bool containsPoint (const Coordinate &p, const KigDocument &doc) const
 Return whether this Curve contains the given point.

Static Public Member Functions

static const ObjectTypestype ()
 Returns the ObjectType representing the Conic type.

Detailed Description

An Object representing a conic.

A conic is a general second degree curve, and some beautiful theory has been developed about it.. See a math book for more information. This class is in fact an abstract base class hiding the fact that a Conic can be constructed in two ways. If only its Cartesian equation is known, then you should use ConicCart, otherwise, you should use ConicPolar. If the other representation is needed, it will be calculated, but a cartesian representation is rarely needed, and not calculating saves some CPU cycles.


Member Function Documentation

virtual QString Conic::cartesianEquationString const KigDocument &  w  )  const [virtual]
 

A string containing the cartesian equation of the conic.

This will be of the form "a x^2 + b y^2 + c xy + d x + e y + f = 0".

Reimplemented in Circle.

virtual int Conic::conicType  )  const [virtual]
 

Type of conic.

Return what type of conic this is: -1 for a hyperbola 0 for a parabola 1 for an ellipse

Reimplemented in Circle.

bool Conic::containsPoint const Coordinate p,
const KigDocument &  doc
const [virtual]
 

Return whether this Curve contains the given point.

This is implemented as a numerical approximation. lementations can/should use the value test_threshold in common.h as a threshold value.

Implements Curve.

bool Conic::equals const Object rhs  )  const [virtual]
 

Returns true if this Object is equal to rhs.

This function checks whether rhs is of the same Object type, and whether it contains the same data as this Object.

Implements Object.

Reimplemented in Circle.

virtual QString Conic::polarEquationString const KigDocument &  w  )  const [virtual]
 

A string containing the polar equation of the conic.

This will be of the form "rho = pdimen/(1 + ect cos( theta ) + est sin( theta ) )
[centered at p]"

Reimplemented in Circle.

const ObjectType* Conic::type  )  const [virtual]
 

Returns the lowermost ObjectType that this object is an instantiation of.

E.g. if you want to get a string containing the internal name of the type of an object, you can do:

 tn = object.type().internalName()

Implements Object.

Reimplemented in Circle.

bool Conic::valid  )  const
 

Returns true if this is a valid Object.

If you want to return an invalid Object, you should return an InvalidObject instance.

Reimplemented from Object.

Reimplemented in Circle.

KDE Logo
This file is part of the documentation for kdelibs 0.10.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Mon Aug 15 23:01:22 2005 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2001