Поделиться через


FixedPoint Structure

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Represents a 16.16 fixed-point number.

Namespace:  Microsoft.WindowsMobile.DirectX.Direct3D
Assembly:  Microsoft.WindowsMobile.DirectX (in Microsoft.WindowsMobile.DirectX.dll)

Syntax

'Declaration
Public Structure FixedPoint _
    Implements IComparable, IFormattable, IConvertible
'Usage
Dim instance As FixedPoint
public struct FixedPoint : IComparable, 
    IFormattable, IConvertible
public value class FixedPoint : IComparable, 
    IFormattable, IConvertible
[<SealedAttribute>]
type FixedPoint =  
    struct
        interface IComparable
        interface IFormattable
        interface IConvertible
    end

Remarks

This structure is used to interoperate with the various types in Windows Mobile Direct 3D that have fixed-point interfaces. The internal representation of this class is an Int32 structure.

Examples

The following example shows how you can use a FixedPoint structure.

' The following code is from the
' Direct3D Mobile Fixed Point Billboard Sample.
' It uses FixedPoint to position meshes of trees randomly.
' Initialize the tree data
Dim i As Integer
For i = 0 To numberTrees - 1
    Dim t As New Tree()
    ' Position the trees randomly
    Do
        Dim fTheta As Single = 2.0F * _
            System.Convert.ToSingle(Math.PI) * _
            System.Convert.ToSingle(randObj.NextDouble())
        Dim fRadius As Single = 25.0F + 55.0F * _
            System.Convert.ToSingle(randObj.NextDouble())
        Dim position As Vector3Fixed
        position.X = CType(fRadius * _
            System.Convert.ToSingle( _
            Math.Sin(fTheta)), FixedPoint)
        position.Z = CType(fRadius * _
            System.Convert.ToSingle(Math.Cos(fTheta)), FixedPoint)
        position.Y = CType(HeightField( _
            System.Convert.ToSingle(position.X), _
            System.Convert.ToSingle(position.Z)), FixedPoint)
        t.Position = position
    Loop While Not IsTreePositionValid(t.Position)
// The following code is from the
// Direct3D Mobile Fixed Point Billboard Sample.
// It uses FixedPoint to position meshes of trees randomly.

        // Initialize the tree data
        for (int i=0; i<numberTrees; i++)
        {
            Tree t = new Tree();


do
{
    float fTheta  = 2.0f * (float)Math.PI *
        (float)randObj.NextDouble();
    float fRadius = 25.0f + 55.0f * (float)randObj.NextDouble();
    Vector3Fixed position;
    position.X  =
        (FixedPoint)(fRadius * (float)Math.Sin(fTheta));
    position.Z  =
        (FixedPoint)(fRadius * (float)Math.Cos(fTheta));
    position.Y  =
        (FixedPoint)HeightField((float)position.X,
        (float)position.Z);
    t.Position = position;
}
while (!IsTreePositionValid(t.Position));

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Version Information

.NET Compact Framework

Supported in: 3.5, 2.0

See Also

Reference

FixedPoint Members

Microsoft.WindowsMobile.DirectX.Direct3D Namespace

Other Resources

Mobile Direct3D Programming in the .NET Compact Framework