프로퍼티 | 타입 | 설명 | |
---|---|---|---|
aabb | Axiom.MathLib.AxisAlignedBox | ||
boundingSphereRadius | float | ||
controlCount | int | ||
controlHeight | int | ||
controlPointBuffer | |||
controlPoints | List |
||
controlWidth | int | ||
currentIndexCount | int | ||
declaration | Axiom.Graphics.VertexDeclaration | ||
indexBuffer | |||
indexOffset | int | ||
maxULevel | int | ||
maxVLevel | int | ||
meshHeight | int | ||
meshWidth | int | ||
requiredIndexCount | int | ||
requiredVertexCount | int | ||
side | VisibleSide | ||
subdivisionFactor | float | ||
type | PatchSurfaceType | ||
uLevel | int | ||
vLevel | int | ||
vertexBuffer | |||
vertexOffset | int |
메소드 | 설명 | |
---|---|---|
Build ( |
Tells the system to build the mesh relating to the surface into externally created buffers. The VertexDeclaration of the vertex buffer must be identical to the one passed into DefineSurface(Array, VertexDeclaration, int, int). In addition, there must be enough space in the buffer to accommodate the patch at full detail level; you should check RequiredVertexCount and RequiredIndexCount to determine this. This method does not create an internal mesh for this patch and so GetMesh will return null if you call it after building the patch this way. |
|
DefineSurface ( |
Sets up the surface by defining it's control points, type and initial subdivision level. This method initializes the surface by passing it a set of control points. The type of curves to be used are also defined here, although the only supported option currently is a bezier patch. You can also specify a global subdivision level here if you like, although it is recommended that the parameter is left as AUTO_LEVEL, which means the system decides how much subdivision is required (based on the curvature of the surface). |
|
DefineSurface ( |
Sets up the surface by defining it's control points, type and initial subdivision level. This method initialises the surface by passing it a set of control points. The type of curves to be used are also defined here, although the only supported option currently is a bezier patch. You can also specify a global subdivision level here if you like, although it is recommended that the parameter is left as AUTO_LEVEL, which means the system decides how much subdivision is required (based on the curvature of the surface). |
|
PatchSurface ( ) : System |
Default contructor.
|
메소드 | 설명 | |
---|---|---|
DistributeControlPoints ( |
|
|
FindLevel ( Vector3 &a, Vector3 &b, Vector3 &c ) : int |
Internal method for finding the subdivision level given 3 control points.
|
|
GetAutoULevel ( ) : int |
|
|
GetAutoULevel ( bool forMax ) : int |
|
|
GetAutoVLevel ( ) : int |
|
|
GetAutoVLevel ( bool forMax ) : int |
|
|
InterpolateVertexData ( |
|
|
LevelWidth ( int level ) : int | ||
MakeTriangles ( ) : void |
|
|
SubdivideCurve ( |
|
public Build ( |
||
destVertexBuffer | The destination vertex buffer in which to build the patch. | |
vertexStart | int | The offset at which to start writing vertices for this patch. |
destIndexBuffer | The destination index buffer in which to build the patch. | |
indexStart | int | The offset at which to start writing indexes for this patch. |
리턴 | void |
public DefineSurface ( |
||
controlPointArray | /// An array containing the vertex data which define control points of the curves /// rather than actual vertices. Note that you are expected to provide not /// just position information, but potentially normals and texture coordinates too. /// The array is internally treated as a contiguous memory buffer without any gaps between the elements. /// The format of the buffer is defined in the VertexDeclaration parameter. /// | |
decl | Axiom.Graphics.VertexDeclaration | /// VertexDeclaration describing the contents of the buffer. /// Note this declaration must _only_ draw on buffer source 0! /// |
width | int | Specifies the width of the patch in control points. |
height | int | Specifies the height of the patch in control points. |
리턴 | void |
public DefineSurface ( |
||
controlPointArray | /// An array containing the vertex data which define control points of the curves /// rather than actual vertices. Note that you are expected to provide not /// just position information, but potentially normals and texture coordinates too. /// The array is internally treated as a contiguous memory buffer without any gaps between the elements. /// The format of the buffer is defined in the VertexDeclaration parameter. /// | |
declaration | Axiom.Graphics.VertexDeclaration | /// VertexDeclaration describing the contents of the buffer. /// Note this declaration must _only_ draw on buffer source 0! /// |
width | int | Specifies the width of the patch in control points. |
height | int | Specifies the height of the patch in control points. |
type | PatchSurfaceType | The type of surface. |
uMaxSubdivisionLevel | int | /// If you want to manually set the top level of subdivision, /// do it here, otherwise let the system decide. /// |
vMaxSubdivisionLevel | int | /// If you want to manually set the top level of subdivision, /// do it here, otherwise let the system decide. /// |
visibleSide | VisibleSide | Determines which side of the patch (or both) triangles are generated for. |
리턴 | void |
protected DistributeControlPoints ( |
||
lockedBuffer | ||
리턴 | void |
protected FindLevel ( Vector3 &a, Vector3 &b, Vector3 &c ) : int | ||
a | Vector3 | First control point. |
b | Vector3 | Second control point. |
c | Vector3 | Third control point. |
리턴 | int |
protected InterpolateVertexData ( |
||
lockedBuffer | ||
leftIndex | int | |
rightIndex | int | |
destIndex | int | |
리턴 | void |
protected SubdivideCurve ( |
||
lockedBuffer | ||
startIdx | int | |
stepSize | int | |
numSteps | int | |
iterations | int | |
리턴 | void |
protected VertexDeclaration,Axiom.Graphics declaration | ||
리턴 | Axiom.Graphics.VertexDeclaration |
protected HardwareIndexBuffer,Axiom.Graphics indexBuffer | ||
리턴 |
protected HardwareVertexBuffer,Axiom.Graphics vertexBuffer | ||
리턴 |