Search Results for

    Show / Hide Table of Contents

    Class CollisionData

    Represents a physics mesh that can be used with a MeshCollider. Physics mesh can be a generic triangle mesh or a convex mesh.

    Inheritance
    Object
    ScriptingObject
    ManagedScriptingObject
    Asset
    BinaryAsset
    CollisionData
    Inherited Members
    Asset::_deleteFileOnUnload
    BinaryAsset::_dependantAssets
    ScriptingObject::_gcHandle
    BinaryAsset::_header
    ScriptingObject::_id
    BinaryAsset::_isSaving
    Asset::_isVirtual
    Asset::_loadingTask
    Asset::_loadState
    Asset::_refCount
    BinaryAsset::_storageRef
    ScriptingObject::_type
    BinaryAsset::AddDependency(BinaryAsset* asset)
    Asset::AddReference()
    Asset::Asset(const SpawnParams& params, const AssetInfo* info)
    ScriptingObject::CanCast(const ScriptingTypeHandle& from, const ScriptingTypeHandle& to)
    ScriptingObject::CanCast(const MClass* from, const MClass* to)
    Asset::CancelStreaming()
    ScriptingObject::Cast(ScriptingObject* obj)
    Asset::ChangeID(const Guid& newId)
    BinaryAsset::ClearDependencies()
    Asset::const
    BinaryAsset::createLoadingTask()
    Asset::CreateManaged()
    ScriptingObject::CreateManagedInternal()
    Asset::DECLARE_ENUM_7(LoadResult, Ok, Failed, MissingDataChunk, CannotLoadData, CannotLoadStorage, CannotLoadInitData, InvalidData)
    ScriptingObject::Deleted
    Asset::DeleteManaged()
    Object::DeleteObject(float timeToLive = 0.0f, bool useGameTime=false)
    Object::DeleteObjectNow()
    BinaryAsset::Dependencies
    Asset::DEPRECATED("Use GetReferences with assets and files parameter instead")
    Asset::DestroyManaged()
    CollisionData
    Object::Flags
    ScriptingObject::FromInterface(void* interfaceObj, const ScriptingTypeHandle& interfaceType)
    ScriptingObject::FromInterface(T* interfaceObj)
    BinaryAsset::GetChunk(int32 index)
    BinaryAsset::GetChunkData(int32 index, BytesContainer& data)
    BinaryAsset::GetChunkSize(int32 index)
    ScriptingObject::GetClass()
    ScriptingObject::GetID()
    BinaryAsset::GetImportMetadata(String& path, String& username)
    BinaryAsset::GetImportPath()
    ScriptingObject::GetManagedInstance()
    BinaryAsset::GetMemoryUsage()
    BinaryAsset::GetOrCreateChunk(int32 index)
    ScriptingObject::GetOrCreateManagedInstance()
    BinaryAsset::GetPath()
    Asset::GetReferences(Array<Guid, HeapAllocation>& assets, Array<String, HeapAllocation>& files)
    Asset::GetReferences()
    Asset::GetReferencesCount()
    BinaryAsset::GetSerializedVersion()
    ScriptingObject::GetType()
    ScriptingObject::GetTypeHandle()
    Asset::GetTypeName()
    BinaryAsset::HasChunk(int32 index)
    BinaryAsset::HasChunkLoaded(int32 index)
    BinaryAsset::HasDependenciesModified()
    ScriptingObject::HasManagedInstance()
    BinaryAsset::Init(const FlaxStorageReference& storage, AssetHeader& header)
    BinaryAsset::Init(AssetInitData& initData)
    BinaryAsset::init(AssetInitData& initData)
    Asset::InitAsVirtual()
    BinaryAsset::InitVirtual(AssetInitData& initData)
    ScriptingObject::Is(const ScriptingTypeHandle& type)
    ScriptingObject::Is(const MClass* type)
    ScriptingObject::Is()
    Asset::IsInternalType()
    Asset::IsLoaded()
    ScriptingObject::IsRegistered()
    Asset::IsVirtual()
    Asset::LastLoadFailed()
    BinaryAsset::loadAsset()
    BinaryAsset::LoadChunk(int32 chunkIndex)
    BinaryAsset::LoadChunks(AssetChunksFlag chunks)
    CollisionData
    Asset::Locker
    ManagedScriptingObject::ManagedScriptingObject(const SpawnParams& params)
    BinaryAsset::Metadata
    ScriptingObject::NewObject(const ScriptingTypeHandle& typeHandle)
    ScriptingObject::NewObject()
    Asset::OnCheckSave(const StringView& path=StringView::Empty)
    BinaryAsset::OnDeleteObject()
    BinaryAsset::OnDependencyModified(BinaryAsset* asset)
    Asset::onLoad(LoadAssetTask* task)
    Asset::OnLoaded
    Asset::onLoaded()
    Asset::onLoaded_MainThread()
    Asset::OnManagedInstanceDeleted()
    Asset::OnReloading
    BinaryAsset::onRename(const StringView& newPath)
    Asset::OnScriptingDispose()
    Asset::onUnload_MainThread()
    Asset::OnUnloaded
    ScriptingObject::RegisterObject()
    BinaryAsset::Reimport()
    BinaryAsset::ReleaseChunk(int32 index)
    BinaryAsset::ReleaseChunks()
    BinaryAsset::releaseStorage()
    Asset::Reload()
    Asset::RemoveReference()
    BinaryAsset::RequestChunkDataAsync(int32 index)
    Asset::Save(const StringView& path=StringView::Empty)
    BinaryAsset::SaveAsset(AssetInitData& data, bool silentMode=false)
    BinaryAsset::SaveAsset(const StringView& path, AssetInitData& data, bool silentMode=false)
    BinaryAsset::SaveToAsset(const StringView& path, AssetInitData& data, bool silentMode=false)
    ScriptingObject::ScriptingObject(const SpawnParams& params)
    BinaryAsset::SetChunk(int32 index, const Span<byte>& data)
    ManagedScriptingObject::SetManagedInstance(MObject* instance)
    Asset::ShouldDeleteFileOnUnload()
    CollisionData
    Asset::startLoading()
    BinaryAsset::Storage
    ScriptingObject::ToInterface(ScriptingObject* obj, const ScriptingTypeHandle& interfaceType)
    ScriptingObject::ToInterface(ScriptingObject* obj)
    ScriptingObject::ToManaged(const ScriptingObject* obj)
    ScriptingObject::ToNative(MObject* obj)
    Asset::ToString()
    ScriptingObject::UnregisterObject()
    Asset::WaitForLoaded(double timeoutInMilliseconds=30000.0)
    BinaryAsset::~BinaryAsset()
    Object::~Object()
    ScriptingObject::~ScriptingObject()
    Assembly: FlaxEngine.dll
    File: Engine/Physics/CollisionData.h
    Syntax
    public class CollisionData : public BinaryAsset

    Methods

    CookCollision(CollisionDataType type, const Span<Float3>& vertices, const Span<int32>& triangles, ConvexMeshGenerationFlags convexFlags=ConvexMeshGenerationFlags::None, int32 convexVertexLimit=255)

    Cooks the mesh collision data and updates the virtual asset. action cannot be performed on a main thread.

    Can be used only for virtual assets (see IsVirtual() and CreateVirtualAsset()).

    Declaration
    public bool CookCollision(CollisionDataType type, const Span<Float3>& vertices, const Span<int32>& triangles, ConvexMeshGenerationFlags convexFlags=ConvexMeshGenerationFlags::None, int32 convexVertexLimit=255)
    Parameters
    CollisionDataType type

    The collision data type.

    Span<Float3> vertices

    The source geometry vertex buffer with vertices positions. Cannot be empty.

    Span<int32> triangles

    The source data index buffer (triangles list). Uses 32-bit stride buffer. Cannot be empty. Length must be multiple of 3 (as 3 vertices build a triangle).

    ConvexMeshGenerationFlags convexFlags

    The convex mesh generation flags.

    int32 convexVertexLimit

    The convex mesh vertex limit. Use values in range [8;255]

    Returns
    bool

    True if failed, otherwise false.

    CookCollision(CollisionDataType type, const Span<Float3>& vertices, const Span<uint32>& triangles, ConvexMeshGenerationFlags convexFlags=ConvexMeshGenerationFlags::None, int32 convexVertexLimit=255)

    Cooks the mesh collision data and updates the virtual asset. action cannot be performed on a main thread.

    Can be used only for virtual assets (see IsVirtual() and CreateVirtualAsset()).

    Declaration
    public bool CookCollision(CollisionDataType type, const Span<Float3>& vertices, const Span<uint32>& triangles, ConvexMeshGenerationFlags convexFlags=ConvexMeshGenerationFlags::None, int32 convexVertexLimit=255)
    Parameters
    CollisionDataType type

    The collision data type.

    Span<Float3> vertices

    The source geometry vertex buffer with vertices positions. Cannot be empty.

    Span<uint32> triangles

    The source data index buffer (triangles list). Uses 32-bit stride buffer. Cannot be empty. Length must be multiple of 3 (as 3 vertices build a triangle).

    ConvexMeshGenerationFlags convexFlags

    The convex mesh generation flags.

    int32 convexVertexLimit

    The convex mesh vertex limit. Use values in range [8;255]

    Returns
    bool

    True if failed, otherwise false.

    CookCollision(CollisionDataType type, ModelBase* model, int32 modelLodIndex = 0, uint32 materialSlotsMask=MAX_uint32, ConvexMeshGenerationFlags convexFlags=ConvexMeshGenerationFlags::None, int32 convexVertexLimit=255)

    Cooks the mesh collision data and updates the virtual asset.

    Can be used only for virtual assets (see IsVirtual() and CreateVirtualAsset()).

    Declaration
    public bool CookCollision(CollisionDataType type, ModelBase* model, int32 modelLodIndex = 0, uint32 materialSlotsMask=MAX_uint32, ConvexMeshGenerationFlags convexFlags=ConvexMeshGenerationFlags::None, int32 convexVertexLimit=255)
    Parameters
    CollisionDataType type

    The collision data type.

    ModelBase model

    The source model. If model is virtual then this method cannot be called from the main thread.

    int32 modelLodIndex

    The source model LOD index.

    uint32 materialSlotsMask

    The source model material slots mask. One bit per-slot. Can be used to exclude particular material slots from collision cooking.

    ConvexMeshGenerationFlags convexFlags

    The convex mesh generation flags.

    int32 convexVertexLimit

    The convex mesh vertex limit. Use values in range [8;255]

    Returns
    bool

    True if failed, otherwise false.

    CookCollision(CollisionDataType type, ModelData* modelData, ConvexMeshGenerationFlags convexFlags, int32 convexVertexLimit)

    Cooks the mesh collision data and updates the virtual asset. action cannot be performed on a main thread.

    Can be used only for virtual assets (see IsVirtual() and CreateVirtualAsset()).

    Declaration
    public bool CookCollision(CollisionDataType type, ModelData* modelData, ConvexMeshGenerationFlags convexFlags, int32 convexVertexLimit)
    Parameters
    CollisionDataType type

    The collision data type.

    ModelData modelData

    The custom geometry.

    ConvexMeshGenerationFlags convexFlags

    The convex mesh generation flags.

    int32 convexVertexLimit

    The convex mesh vertex limit. Use values in range [8;255]

    Returns
    bool

    True if failed, otherwise false.

    ExtractGeometry(Array<Float3>& vertexBuffer, Array<int32>& indexBuffer)

    Extracts the collision data geometry into list of triangles.

    Declaration
    public void ExtractGeometry(Array<Float3>& vertexBuffer, Array<int32>& indexBuffer) const
    Parameters
    Array<Float3> vertexBuffer

    The output vertex buffer.

    Array<int32> indexBuffer

    The output index buffer.

    getChunksToPreload()

    Gets packed chunks indices to preload before asset loading action

    Declaration
    protected virtual AssetChunksFlag getChunksToPreload() const override
    Returns
    AssetChunksFlag

    Chunks to load flags

    Overrides
    BinaryAsset::getChunksToPreload()

    GetConvex()

    Gets the convex mesh object (valid only if asset is loaded and has cooked convex data).

    Declaration
    public void* GetConvex() const
    Returns
    void

    GetDebugLines()

    Declaration
    public Array<Float3> GetDebugLines()
    Returns
    Array<Float3>

    GetDebugTriangles(Array<Float3>*& vertexBuffer, Array<int32>*& indexBuffer)

    Declaration
    public void GetDebugTriangles(Array<Float3>*& vertexBuffer, Array<int32>*& indexBuffer)
    Parameters
    Array<Float3> vertexBuffer

    Array<int32> indexBuffer

    GetModelTriangle(uint32 faceIndex, MeshBase*& mesh, uint32& meshTriangleIndex)

    Extracts the triangle index of the original mesh data used for cooking this collision data. Can be used to get vertex attributes of the triangle mesh hit by the raycast.

    Supported only for collision data built as triangle mesh and without ConvexMeshGenerationFlags.SuppressFaceRemapTable flag set.

    Declaration
    public bool GetModelTriangle(uint32 faceIndex, MeshBase*& mesh, uint32& meshTriangleIndex) const
    Parameters
    uint32 faceIndex

    The face index of the collision mesh.

    MeshBase mesh

    The result source mesh used to build this collision data (can be null if collision data was cooked using custom geometry without source Model set).

    uint32 meshTriangleIndex

    The result triangle index of the source geometry used to build this collision data.

    Returns
    bool

    True if got a valid triangle index, otherwise false.

    GetOptions()

    Gets the options.

    Declaration
    public CollisionDataOptions GetOptions() const
    Returns
    CollisionDataOptions

    GetTriangle()

    Gets the triangle mesh object (valid only if asset is loaded and has cooked triangle data).

    Declaration
    public void* GetTriangle() const
    Returns
    void

    load()

    Load data from the chunks

    Declaration
    protected virtual LoadResult load() override
    Returns
    LoadResult

    Loading result

    Overrides
    BinaryAsset::load()

    unload(bool isReloading)

    Unloads asset data

    Declaration
    protected virtual void unload(bool isReloading) override
    Parameters
    bool isReloading

    True if asset is reloading data, otherwise false.

    Overrides
    Asset::unload(bool isReloading)
    • Improve this Doc
    • View Source
    In This Article
    Back to top Copyright © 2012-2024 Wojciech Figat