Class TControlPointsCurve
Unit
CastleCurves
Declaration
type TControlPointsCurve = class(TCurve)
Description
A basic abstract class for curves determined my some set of ControlPoints. Note: it is not defined in this class any correspondence between values of T (argument for Point function) and ControlPoints.
Hierarchy
Overview
Fields
Methods
Description
Fields
Methods
 |
function CreateConvexHullPoints: TVector3SingleList; virtual; |
Using these function you can control how Convex Hull (for RenderConvexHull) is calculated: CreateConvexHullPoints should return points that must be in convex hull (we will run ConvexHull function on those points), DestroyConvexHullPoints should finalize them.
This way you can create new object in CreateConvexHullPoints and free it in DestroyConvexHullPoints, but you can also give in CreateConvexHullPoints reference to some already existing object and do nothing in DestroyConvexHullPoints. (we will not modify object given as CreateConvexHullPoints in any way)
Default implementation in this class returns ControlPoints as CreateConvexHullPoints . (and does nothing in DestroyConvexHullPoints)
|
 |
procedure RenderControlPoints; |
glBegin(GL_POINTS) + glVertex fo each ControlPoints[i] + glEnd.
|
 |
function BoundingBox: TBox3D; override; |
This class provides implementation for BoundingBox : it is simply a BoundingBox of ControlPoints. Subclasses may (but don't have to) override this to calculate better (more accurate) BoundingBox .
|
 |
procedure UpdateControlPoints; virtual; |
Always after changing ControlPoints and before calling Point, BoundingBox (and anything that calls them, e.g. Render calls Point) call this method. It recalculates necessary things. ControlPoints.Count must be >= 2.
When overriding: always call inherited first.
|
 |
class function NiceClassName: string; virtual; abstract; |
Nice class name, with spaces, starts with a capital letter. Much better than ClassName. Especially under FPC 1.0.x where ClassName is always uppercased.
|
 |
procedure RenderConvexHull; |
do glBegin(GL_POLYGON), glVertex(v)..., glEnd, where glVertex are points of Convex Hull of ControlPoints (ignoring Z-coord of ControlPoints).
|
 |
constructor Create(const ATBegin, ATEnd: Float); virtual; |
Constructor. This is virtual because it's called by CreateDivideCasScriptCurve. It's also useful in many places in curves.lpr.
|
 |
constructor CreateDivideCasScriptCurve(CasScriptCurve: TCasScriptCurve; ControlPointsCount: Cardinal); |
Calculates ControlPoints taking Point(i, ControlPointsCount-1) for i in [0 .. ControlPointsCount-1] from CasScriptCurve. TBegin and TEnd are copied from CasScriptCurve.
|
 |
destructor Destroy; override; |
|
Generated by PasDoc 0.13.0 on 2014-10-26 05:15:12
|