Geometry Class (Microsoft.DirectX.Direct3D)
How Do I...?
- Compute a Bounding Sphere from a Mesh
Contains miscellaneous math-related functions.
Definition
Visual Basic NotInheritable MustInherit Public Class Geometry
Inherits ObjectC# public abstract sealed class Geometry : Object C++ public ref class Geometry abstract sealed : Object JScript public final abstract class Geometry extends Object
Members Table
The following table lists the members exposed by the object.
Methods
Method Description BoxBoundProbe
Determines whether a ray intersects the volume of a bounding box. ComputeBoundingBox
Computes a coordinate axis-oriented bounding box. ComputeBoundingSphere
Computes a bounding sphere for a mesh. ComputeTangentFrame
Performs tangent frame computations on a mesh. Tangent, binormal, and optionally normal vectors are generated. Singularities are handled as required by grouping edges and splitting vertices. DegreeToRadian
Converts degrees to radians. FresnelTerm
Calculates the Fresnel term. IntersectTri
Computes the intersection of a ray and a triangle. OptimizeFaces
Optimizes a set of faces. OptimizeVertices
Optimizes a set of vertices. RadianToDegree
Converts radians to degrees. SphereBoundProbe
Determines whether a ray intersects the volume of a sphere's bounding box.
Inheritance Hierarchy
Geometry
How Do I...?
Compute a Bounding Sphere from a Mesh
This example shows how to generate a simple bounding sphere around a 3-D object, using the Geometry.ComputeBoundingSphere method. A bounding sphere has many possible uses in 3-D graphics; for example, to help test whether one 3-D object intersects with another.
In the following C# code example, a vertex buffer is created from the vertex data of the mesh object. The new vertex buffer is then locked so that Geometry algorithms can be computed on it. The output of the ComputeBoundingSphere is the radius from the center to the farthest extremity of the mesh object. The mesh object is assumed to be a valid mesh loaded with Mesh.FromFile.
[C#] float objectRadius = 0.0f; Vector3 objectCenter = new Vector3(); using (VertexBuffer vb = Mesh.VertexBuffer) { GraphicsStream vertexData = vb.Lock(0, 0, LockFlags.None); objectRadius = Geometry.ComputeBoundingSphere(vertexData, mesh.NumberVertices, mesh.VertexFormat, out objectCenter); vb.Unlock(); }
Class Information
Namespace Microsoft.DirectX.Direct3D Assembly Microsoft.DirectX.Direct3DX (microsoft.directx.direct3dx.dll) Strong Name Microsoft.DirectX.Direct3DX, Version=1.0.900.0, Culture=neutral, PublicKeyToken=d3231b57b74a1492