Class TSmoothInterpolatedCurve

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TSmoothInterpolatedCurve = class(TInterpolatedCurve)

Description

Warning: this symbol is deprecated: Rendering of TSmoothInterpolatedCurve is not portable to OpenGLES (that is: Android and iOS) and not very efficient. For portable and fast curves consider using X3D NURBS nodes (wrapped in a TCastleScene) instead.

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(AOwner: TComponent); 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(AOwner: TComponent); override;
 
Public destructor Destroy; override;
 

Generated by PasDoc 0.14.0.