Class TSmoothInterpolatedCurve

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TSmoothInterpolatedCurve = class(TInterpolatedCurve)

Description

Smooth interpolated curve, each segment (ControlPoints[i]..ControlPoints[i+1]) is converted to a rational Bezier curve (with 4 control points) when rendering.

You can also explicitly convert it to a list of bezier curves using ToRationalBezierCurves.

Here too ControlPoints.Count MAY be 1. (For TControlPointsCurve it must be >= 2)

Hierarchy

Overview

Methods

Protected function CreateConvexHullPoints: TVector3SingleList; override;
Protected procedure DestroyConvexHullPoints(Points: TVector3SingleList); override;
Public function Point(const t: Float): TVector3Single; override;
Public function ToRationalBezierCurves(ResultOwnsCurves: boolean): TRationalBezierCurveList;
Public procedure UpdateControlPoints; override;
Public class function NiceClassName: string; override;
Public constructor Create(const ATBegin, ATEnd: Float); override;
Public destructor Destroy; override;

Description

Methods

Protected function CreateConvexHullPoints: TVector3SingleList; override;
 
Protected procedure DestroyConvexHullPoints(Points: TVector3SingleList); override;
 
Public function Point(const t: Float): TVector3Single; override;
 
Public function ToRationalBezierCurves(ResultOwnsCurves: boolean): TRationalBezierCurveList;

convert this to a list of TRationalBezierCurve.

From each line segment ControlPoint[i] ... ControlPoint[i+1] you get one TRationalBezierCurve with 4 control points, where ControlPoint[0] and ControlPoint[3] are taken from ours ControlPoint[i] ... ControlPoint[i+1] and the middle ControlPoint[1], ControlPoint[2] are calculated so that all those bezier curves join smoothly.

All Weights are set to 1.0 (so actually these are all normal Bezier curves; but I'm treating normal Bezier curves as Rational Bezier curves everywhere here)

Public procedure UpdateControlPoints; override;
 
Public class function NiceClassName: string; override;
 
Public constructor Create(const ATBegin, ATEnd: Float); override;
 
Public destructor Destroy; override;
 

Generated by PasDoc 0.13.0 on 2014-04-30 22:06:42