| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iBezierFactoryState Struct Reference
[Mesh plugins]

This is the state interface to access the internals of a bezier mesh factory. More...

`#include <imesh/bezier.h>`

Inheritance diagram for iBezierFactoryState:

[legend]
List of all members.

## Public Member Functions
virtual size_t | AddCurveVertex (const csVector3 &v, const csVector2 &uv)=0
| Add a curve vertex.
virtual void | ClearCurveVertices ()=0
| Clear all curve vertices (and texels too).
virtual iCurve * | CreateCurve ()=0
| Create a new curve for this thing.
virtual int | FindCurveIndex (iCurve *curve) const =0
| Find the index for a curve. Returns -1 if curve cannot be found.
virtual float | GetCosinusFactor () const =0
| Get cosinus factor.
virtual iCurve * | GetCurve (int idx) const =0
| Get the curve.
virtual int | GetCurveCount () const =0
| Get the number of curves.
virtual const csVector3 & | GetCurvesCenter () const =0
| Get the center of the curves.
virtual float | GetCurvesScale () const =0
| Get the scale of the curves.
virtual csVector2 & | GetCurveTexel (int i) const =0
| Get the specified curve texture coordinate (texel).
virtual csVector3 & | GetCurveVertex (int i) const =0
| Get the specified curve vertex.
virtual int | GetCurveVertexCount () const =0
| Get the number of curve vertices.
virtual csVector3 * | GetCurveVertices () const =0
| Get the curve vertices.
virtual void | MergeTemplate (iBezierFactoryState *tpl, iMaterialWrapper *default_material=0, csVector3 *shift=0, csMatrix3 *transform=0)=0
| Add polygons and vertices from the specified thing (seen as template).
virtual void | RemoveCurve (int idx)=0
| Delete a curve given an index.
virtual void | RemoveCurves ()=0
| Delete all curves.
virtual void | SetCosinusFactor (float cosfact)=0
| Set cosinus factor.
virtual void | SetCurvesCenter (const csVector3 &cen)=0
| Set the center of the curves.
virtual void | SetCurvesScale (float scale)=0
| Set the scale of the curves.
virtual void | SetCurveTexel (int idx, const csVector2 &vt)=0
| Set a curve texel.
virtual void | SetCurveVertex (int idx, const csVector3 &vt)=0
| Set a curve vertex.

## Detailed Description

This is the state interface to access the internals of a bezier mesh factory.

Main creators of instances implementing this interface:

- Bezier mesh object plugin (crystalspace.mesh.object.bezier)
- iMeshObjectType::NewFactory()

Main ways to get pointers to this interface:

- scfQueryInterface() on iMeshFactoryWrapper::GetMeshObjectFactory()
- iBezierState::GetFactory()

Main users of this interface:

- Bezier Factory Loader plugin (crystalspace.mesh.loader.factory.bezier)

Definition at line 86 of file bezier.h.

## Member Function Documentation

virtual size_t iBezierFactoryState::AddCurveVertex | ( | const csVector3 & | v,
|  | const csVector2 & | uv |
| ) |  |  | `[pure virtual]`

Add a curve vertex.

virtual void iBezierFactoryState::ClearCurveVertices | ( |  | ) | `[pure virtual]`

Clear all curve vertices (and texels too).

virtual iCurve* iBezierFactoryState::CreateCurve | ( |  | ) | `[pure virtual]`

Create a new curve for this thing.

virtual int iBezierFactoryState::FindCurveIndex | ( | iCurve * | curve | ) | const`[pure virtual]`

Find the index for a curve. Returns -1 if curve cannot be found.

virtual float iBezierFactoryState::GetCosinusFactor | ( |  | ) | const`[pure virtual]`

Get cosinus factor.

virtual iCurve* iBezierFactoryState::GetCurve | ( | int | idx | ) | const`[pure virtual]`

Get the curve.

virtual int iBezierFactoryState::GetCurveCount | ( |  | ) | const`[pure virtual]`

Get the number of curves.

virtual const csVector3& iBezierFactoryState::GetCurvesCenter | ( |  | ) | const`[pure virtual]`

Get the center of the curves.

virtual float iBezierFactoryState::GetCurvesScale | ( |  | ) | const`[pure virtual]`

Get the scale of the curves.

virtual csVector2& iBezierFactoryState::GetCurveTexel | ( | int | i | ) | const`[pure virtual]`

Get the specified curve texture coordinate (texel).

virtual csVector3& iBezierFactoryState::GetCurveVertex | ( | int | i | ) | const`[pure virtual]`

Get the specified curve vertex.

virtual int iBezierFactoryState::GetCurveVertexCount | ( |  | ) | const`[pure virtual]`

Get the number of curve vertices.

virtual csVector3* iBezierFactoryState::GetCurveVertices | ( |  | ) | const`[pure virtual]`

Get the curve vertices.

virtual void iBezierFactoryState::MergeTemplate | ( | iBezierFactoryState * | tpl,
|  | iMaterialWrapper * | default_material = `0`,
|  | csVector3 * | shift = `0`,
|  | csMatrix3 * | transform = `0` |
| ) |  |  | `[pure virtual]`

Add polygons and vertices from the specified thing (seen as template).

virtual void iBezierFactoryState::RemoveCurve | ( | int | idx | ) | `[pure virtual]`

Delete a curve given an index.

virtual void iBezierFactoryState::RemoveCurves | ( |  | ) | `[pure virtual]`

Delete all curves.

virtual void iBezierFactoryState::SetCosinusFactor | ( | float | cosfact | ) | `[pure virtual]`

Set cosinus factor.

This cosinus factor controls how lighting affects the polygons relative to the angle. If no value is set here then the default is used.

virtual void iBezierFactoryState::SetCurvesCenter | ( | const csVector3 & | cen | ) | `[pure virtual]`

Set the center of the curves.

virtual void iBezierFactoryState::SetCurvesScale | ( | float | scale | ) | `[pure virtual]`

Set the scale of the curves.

virtual void iBezierFactoryState::SetCurveTexel | ( | int | idx,
|  | const csVector2 & | vt |
| ) |  |  | `[pure virtual]`

Set a curve texel.

virtual void iBezierFactoryState::SetCurveVertex | ( | int | idx,
|  | const csVector3 & | vt |
| ) |  |  | `[pure virtual]`

Set a curve vertex.

The documentation for this struct was generated from the following file:

- imesh/bezier.h