Castle Game Engine: CastleCurves: Class TCurve

# Class TCurve
Description | Hierarchy | Fields | Methods | Properties
## Unit CastleCurves ## Declaration `type TCurve = class(T3D)` ## Description 3D curve, a set of points defined by a continous function Point for arguments within [TBegin, TEnd]. Note that some descendants return only an approximate BoundingBox result, it may be too small or too large sometimes. (Maybe at some time I'll make this more rigorous, as some code may require that it's a proper bounding box, maybe too large but never too small.) ## Hierarchy TComponent T3D TCurve ## Overview ### Methods
| `function Point(const t: Float): TVector3Single; virtual; abstract;`
| `function PointOfSegment(i, Segments: Cardinal): TVector3Single;`
| `procedure Render(Segments: Cardinal); deprecated 'Do not render curve directly by this method, instead add the curve to SceneManager.Items to have it rendered automatically.';`
| `procedure Render(const Frustum: TFrustum; const Params: TRenderParams); override;`
| `constructor Create(AOwner: TComponent); override;`
### Properties
| `property TBegin: Single read FTBegin write FTBegin default 0;`
| `property TEnd: Single read FTEnd write FTEnd default 1;`
| `property Color: TCastleColor read FColor write FColor;`
| `property LineWidth: Single read FLineWidth write FLineWidth default 1;`
| `property DefaultSegments: Cardinal read FDefaultSegments write FDefaultSegments default 10;`
## Description ### Methods
| `function Point(const t: Float): TVector3Single; virtual; abstract;`
Curve function, for each parameter value determine the 3D point. This determines the actual shape of the curve.
| `function PointOfSegment(i, Segments: Cardinal): TVector3Single;`
Curve function to work with rendered line segments begin/end points. This is simply a more specialized version of Point, it scales the argument such that you get Point(TBegin) for I = 0 and you get Point(TEnd) for I = Segments.
| `procedure Render(Segments: Cardinal); deprecated 'Do not render curve directly by this method, instead add the curve to SceneManager.Items to have it rendered automatically.';`
Warning: this symbol is deprecated: Do not render curve directly by this method, instead add the curve to SceneManager.Items to have it rendered automatically. Render curve by dividing it into a given number of line segments. So actually every curve will be rendered as a set of straight lines. You should just give some large number for Segments to have something that will be really smooth. This does direct OpenGL rendering right now, setting GL color and then rendering a line strip.
| `procedure Render(const Frustum: TFrustum; const Params: TRenderParams); override;`
| `constructor Create(AOwner: TComponent); override;`
### Properties
| `property TBegin: Single read FTBegin write FTBegin default 0;`
The valid range of curve function argument. Must be `TBegin` <= TEnd.
| `property TEnd: Single read FTEnd write FTEnd default 1;`
| `property Color: TCastleColor read FColor write FColor;`
Curve rendering color. White by default.
| `property LineWidth: Single read FLineWidth write FLineWidth default 1;`
| `property DefaultSegments: Cardinal read FDefaultSegments write FDefaultSegments default 10;`
Default number of segments, used when rendering by T3D interface (that is, `Render(Frustum, TransparentGroup...)` method.)
Generated by PasDoc 0.13.0 on 2015-06-15 04:43:09