Search Results for

    Show / Hide Table of Contents

    Class MeshBase

    Base class for mesh objects.

    Inheritance
    System.Object
    Object
    MeshBase
    Mesh
    SkinnedMesh
    Inherited Members
    Object.__unmanagedPtr
    Object.__internalId
    Object.Finalize()
    Object.As<T>()
    Object.NewValue(Type)
    Object.New(String)
    Object.Find<T>(Guid, Boolean)
    Object.Find(Guid, Type, Boolean)
    Object.TryFind<T>(Guid)
    Object.TryFind(Guid, Type)
    Object.Destroy(Object, Single)
    Object.DestroyNow(Object)
    Object.Destroy<T>(T, Single)
    Object.Equals(Object)
    Object.GetUnmanagedPtr(Object)
    Object.GetUnmanagedInterface(Object, Type)
    Object.FromUnmanagedPtr(IntPtr)
    Object.MapObjectID(Guid)
    Object.RemapObjectID(Guid)
    Object.GetHashCode()
    Object.ID
    Object.TypeName
    Namespace: FlaxEngine
    Assembly: FlaxEngine.CSharp.dll
    Syntax
    [Unmanaged]
    public abstract class MeshBase : Object

    Constructors

    MeshBase()

    Initializes a new instance of the MeshBase.

    Declaration
    protected MeshBase()

    Properties

    Box

    Gets the box.

    Declaration
    [Unmanaged]
    public BoundingBox Box { get; }
    Property Value
    BoundingBox

    HasVertexColors

    Determines whether this mesh has a vertex colors buffer.

    Declaration
    [Unmanaged]
    public bool HasVertexColors { get; }
    Property Value
    System.Boolean

    Index

    Gets the mesh index.

    Declaration
    [Unmanaged]
    public int Index { get; }
    Property Value
    System.Int32

    IndexBufferFormat

    Gets a format of the mesh index buffer.

    Declaration
    public PixelFormat IndexBufferFormat { get; }
    Property Value
    PixelFormat

    LODIndex

    Gets the mesh parent LOD index.

    Declaration
    [Unmanaged]
    public int LODIndex { get; }
    Property Value
    System.Int32

    MaterialSlot

    Gets the material slot used by this mesh during rendering.

    Declaration
    public MaterialSlot MaterialSlot { get; }
    Property Value
    MaterialSlot

    MaterialSlotIndex

    Gets or sets the index of the material slot to use during this mesh rendering.

    Declaration
    [Unmanaged]
    public int MaterialSlotIndex { get; set; }
    Property Value
    System.Int32

    ModelBase

    Gets the model owning this mesh.

    Declaration
    [Unmanaged]
    public ModelBase ModelBase { get; }
    Property Value
    ModelBase

    Sphere

    Gets the sphere.

    Declaration
    [Unmanaged]
    public BoundingSphere Sphere { get; }
    Property Value
    BoundingSphere

    TriangleCount

    Gets the triangle count.

    Declaration
    [Unmanaged]
    public int TriangleCount { get; }
    Property Value
    System.Int32

    Use16BitIndexBuffer

    Determines whether this mesh is using 16 bit index buffer, otherwise it's 32 bit.

    Declaration
    [Unmanaged]
    public bool Use16BitIndexBuffer { get; }
    Property Value
    System.Boolean

    VertexCount

    Gets the vertex count.

    Declaration
    [Unmanaged]
    public int VertexCount { get; }
    Property Value
    System.Int32

    VertexLayout

    Gets the vertex buffers layout. Made out of all buffers used by this mesh.

    Declaration
    [Unmanaged]
    public GPUVertexLayout VertexLayout { get; }
    Property Value
    GPUVertexLayout

    Methods

    DownloadData(Span<MeshBufferType>, out Byte[][], out GPUVertexLayout[], Boolean)

    Extracts mesh buffers data.

    Declaration
    public bool DownloadData(Span<MeshBufferType> types, out byte[][] buffers, out GPUVertexLayout[] layouts, bool forceGpu = false)
    Parameters
    System.Span<FlaxEngine.MeshBufferType> types

    List of buffers to load.

    System.Byte[][] buffers

    The result mesh buffers.

    GPUVertexLayout[] layouts

    The result layouts of the vertex buffers.

    System.Boolean forceGpu

    If set to true the data will be downloaded from the GPU, otherwise it can be loaded from the drive (source asset file) or from memory (if cached). Downloading mesh from GPU requires this call to be made from the other thread than main thread. Virtual assets are always downloaded from GPU memory due to lack of dedicated storage container for the asset data.

    Returns
    System.Boolean

    True if failed, otherwise false

    DownloadIndexBuffer(Boolean)

    Downloads the index buffer that contains mesh triangles data. To download data from GPU set forceGpu to true and call this method from the thread other than main thread (see IsInMainThread).

    Declaration
    public uint[] DownloadIndexBuffer(bool forceGpu = false)
    Parameters
    System.Boolean forceGpu

    If set to true the data will be downloaded from the GPU, otherwise it can be loaded from the drive (source asset file) or from memory (if cached). Downloading mesh from GPU requires this call to be made from the other thread than main thread. Virtual assets are always downloaded from GPU memory due to lack of dedicated storage container for the asset data.

    Returns
    System.UInt32[]

    The gathered data.

    Remarks

    If mesh index buffer format (see IndexBufferFormat) is R16_UInt then it's faster to call .

    DownloadIndexBufferUShort(Boolean)

    Downloads the index buffer that contains mesh triangles data. To download data from GPU set forceGpu to true and call this method from the thread other than main thread (see IsInMainThread).

    Declaration
    public ushort[] DownloadIndexBufferUShort(bool forceGpu = false)
    Parameters
    System.Boolean forceGpu

    If set to true the data will be downloaded from the GPU, otherwise it can be loaded from the drive (source asset file) or from memory (if cached). Downloading mesh from GPU requires this call to be made from the other thread than main thread. Virtual assets are always downloaded from GPU memory due to lack of dedicated storage container for the asset data.

    Returns
    System.UInt16[]

    The gathered data.

    Remarks

    If mesh index buffer format (see IndexBufferFormat) is R32_UInt then data won't be downloaded.

    GetIndexBuffer()

    Gets the index buffer.

    Declaration
    [Unmanaged]
    public GPUBuffer GetIndexBuffer()
    Returns
    GPUBuffer

    GetVertexBuffer(Int32)

    Gets the vertex buffer.

    Declaration
    [Unmanaged]
    public GPUBuffer GetVertexBuffer(int index)
    Parameters
    System.Int32 index

    The bind slot index.

    Returns
    GPUBuffer

    The buffer or null if not used.

    Init(UInt32, UInt32, IntPtr[], IntPtr, Boolean, GPUVertexLayout[])

    Initializes the mesh buffers.

    Declaration
    [Unmanaged]
    public bool Init(uint vertices, uint triangles, IntPtr[] vbData, IntPtr ibData, bool use16BitIndexBuffer, GPUVertexLayout[] vbLayout)
    Parameters
    System.UInt32 vertices

    Amount of vertices in the vertex buffer.

    System.UInt32 triangles

    Amount of triangles in the index buffer.

    System.IntPtr[] vbData

    Array with pointers to vertex buffers initial data (layout defined by vbLayout).

    System.IntPtr ibData

    Pointer to index buffer data. Data is uint16 or uint32 depending on use16BitIndexBuffer value.

    System.Boolean use16BitIndexBuffer

    True to use 16-bit indices for the index buffer (true: uint16, false: uint32).

    GPUVertexLayout[] vbLayout

    Layout descriptors for the vertex buffers attributes (one for each vertex buffer).

    Returns
    System.Boolean

    True if failed, otherwise false.

    SetBounds(ref BoundingBox)

    Sets the mesh bounds.

    Declaration
    [Unmanaged]
    public void SetBounds(ref BoundingBox box)
    Parameters
    BoundingBox box

    The bounding box.

    SetBounds(ref BoundingBox, ref BoundingSphere)

    Sets the mesh bounds.

    Declaration
    [Unmanaged]
    public void SetBounds(ref BoundingBox box, ref BoundingSphere sphere)
    Parameters
    BoundingBox box

    The bounding box.

    BoundingSphere sphere

    The bounding sphere.

    UpdateTriangles(List<Int32>)

    Updates the model mesh index buffer data. Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()). Mesh data will be cached and uploaded to the GPU with a delay.

    Declaration
    public void UpdateTriangles(List<int> triangles)
    Parameters
    System.Collections.Generic.List<System.Int32> triangles

    The mesh index buffer (triangles). Uses 32-bit stride buffer. Cannot be null.

    UpdateTriangles(List<UInt16>)

    Updates the model mesh index buffer data. Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()). Mesh data will be cached and uploaded to the GPU with a delay.

    Declaration
    public void UpdateTriangles(List<ushort> triangles)
    Parameters
    System.Collections.Generic.List<System.UInt16> triangles

    The mesh index buffer (triangles). Uses 16-bit stride buffer. Cannot be null.

    UpdateTriangles(Int32[])

    Updates the model mesh index buffer data. Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()). Mesh data will be cached and uploaded to the GPU with a delay.

    Declaration
    public void UpdateTriangles(int[] triangles)
    Parameters
    System.Int32[] triangles

    The mesh index buffer (triangles). Uses 32-bit stride buffer. Cannot be null.

    UpdateTriangles(UInt16[])

    Updates the model mesh index buffer data. Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()). Mesh data will be cached and uploaded to the GPU with a delay.

    Declaration
    public void UpdateTriangles(ushort[] triangles)
    Parameters
    System.UInt16[] triangles

    The mesh index buffer (triangles). Uses 16-bit stride buffer. Cannot be null.

    Extension Methods

    Extensions.ReflectiveCompare<T>(T, T)
    Extensions.RawClone<T>(T)
    In This Article
    Back to top Copyright © 2012-2024 Wojciech Figat