Class TControlPointsCurve

DescriptionHierarchyFieldsMethodsProperties

Unit

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

Public ControlPoints: TVector3SingleList;

Methods

Public procedure RenderControlPoints;
Public function BoundingBox: TBox3D; override;
Public procedure UpdateControlPoints; virtual;
Public class function NiceClassName: string; virtual; abstract;
Public procedure RenderConvexHull;
Public constructor Create(const ATBegin, ATEnd: Float); virtual;
Public constructor CreateDivideCasScriptCurve(CasScriptCurve: TCasScriptCurve; ControlPointsCount: Cardinal);
Public destructor Destroy; override;

Description

Fields

Public ControlPoints: TVector3SingleList;
 

Methods

Public procedure RenderControlPoints;

glBegin(GL_POINTS) + glVertex fo each ControlPoints[i] + glEnd.

Public 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.

Public 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.

Public 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.

Public procedure RenderConvexHull;

do glBegin(GL_POLYGON), glVertex(v)..., glEnd, where glVertex are points of Convex Hull of ControlPoints (ignoring Z-coord of ControlPoints).

Public 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.

Public 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.

Public destructor Destroy; override;
 

Generated by PasDoc 0.13.0 on 2013-08-17 21:27:12