66 lines
2.8 KiB
C++
66 lines
2.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "HAL/Platform.h" // Required by MESHMODELINGTOOLSEXP_API
|
|
|
|
class FPhysicsDataCollection;
|
|
class UCollisionGeometryVisualizationProperties;
|
|
class UPreviewGeometry;
|
|
class UMaterialInterface;
|
|
|
|
namespace UE::PhysicsTools
|
|
{
|
|
/**
|
|
* Create triangle sets (solids) and line sets (wireframes) in a UPreviewGeometry for all the elements in a Physics Data Collection.
|
|
* In line sets, Spheres and Capsules are drawn as 3-axis wireframes. Convexes are added as wireframes.
|
|
* By default, clear existing lines and triangles from the preview
|
|
*/
|
|
void MESHMODELINGTOOLSEXP_API InitializeCollisionGeometryVisualization(
|
|
UPreviewGeometry* PreviewGeom,
|
|
UCollisionGeometryVisualizationProperties* Settings,
|
|
const FPhysicsDataCollection& PhysicsData,
|
|
float DepthBias = 0.f,
|
|
int32 CircleStepResolution = 16,
|
|
bool bClearExistingLinesAndTriangles = true);
|
|
|
|
/**
|
|
* Update line sets in a UPreviewGeometry.
|
|
*/
|
|
void MESHMODELINGTOOLSEXP_API UpdateCollisionGeometryVisualization(
|
|
UPreviewGeometry* PreviewGeom,
|
|
UCollisionGeometryVisualizationProperties* Settings);
|
|
|
|
// The following functions are like InitializeCollisionGeometryVisualization/UpdateCollisionGeometryVisualization
|
|
// but assume that the given UPreviewGeometry only represents part of the complete collision geometry visualization
|
|
|
|
/**
|
|
* Like InitializeCollisionGeometryVisualization but only initializes part of the collision geometry visualization.
|
|
*
|
|
* The ColorIndex parameter is used to implement Settings->bRandomColors since pseudorandom colors are determined
|
|
* using unique integers for each line/triangle set, which may be stored in separate UPreviewGeometry objects. Since the
|
|
* initialization is partial this function doesn't set Settings->bVisualizationDirty, the caller should do that.
|
|
*/
|
|
void MESHMODELINGTOOLSEXP_API PartiallyInitializeCollisionGeometryVisualization(
|
|
UPreviewGeometry* PartialPreviewGeom,
|
|
UCollisionGeometryVisualizationProperties* Settings,
|
|
const FPhysicsDataCollection& PhysicsData,
|
|
int32 ColorIndex,
|
|
float DepthBias = 0.f,
|
|
int32 CircleStepResolution = 16);
|
|
|
|
/**
|
|
* Like UpdateCollisionGeometryVisualization but only updates part of the collision geometry visualization.
|
|
*
|
|
* The ColorIndex parameter is used implement Settings->bRandomColors since pseudorandom colors are determined
|
|
* using unique integers for each line/triangle set, which may be stored in separate UPreviewGeometry objects. Since the
|
|
* update is partial this function doesn't check or set Settings->bVisualizationDirty, the caller should do that.
|
|
*/
|
|
void MESHMODELINGTOOLSEXP_API PartiallyUpdateCollisionGeometryVisualization(
|
|
UPreviewGeometry* PartialPreviewGeom,
|
|
UCollisionGeometryVisualizationProperties* Settings,
|
|
int32 ColorIndex);
|
|
}
|
|
|
|
|