Module |
|
Header |
/Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/ImplicitObject.h |
Include |
#include "Chaos/ImplicitObject.h" |
class FImplicitObject
Base class for implicit collision geometry such as spheres, capsules, boxes, etc.
Some shapes are represented by a core shape with a margin. E.g. Spheres are a point with a margin equal to the radius; boxes are a core AABB with a margin. The margin is considered to be physically part of the shape for the pupose of collision detection, separating distance, etc.
The margin exists to make GJK and EPA collision more robust, and is not required by all derived types. E.g., We never use GJK to perform triangle-triangle collision so we do not need a margin on triangles. We would need a margin on every type that can be tested against a triangle though.
Name | Description | ||
---|---|---|---|
|
bDoCollide |
||
|
bHasBoundingBox |
||
|
bIsConvex |
||
|
bIsTracked |
||
|
CollisionType |
||
|
Margin |
||
|
Type |
Name | Description | |
---|---|---|
|
FImplicitObject ( |
|
|
FImplicitObject ( |
|
|
FImplicitObject ( |
Name | Description | |
---|---|---|
|
~FImplicitObject() |
Name | Description | ||
---|---|---|---|
|
AccumulateAllImplicitObjects ( |
||
|
AccumulateAllSerializableImplicitObjects ( |
||
|
const FAABB3 |
BoundingBox() |
|
|
TUniquePtr< ... |
Copy() |
|
|
TUniquePtr< ... |
DeepCopy() |
|
|
FindAllIntersectingObjects ( |
||
|
FindClosestFaceAndVertices |
Finds the first intersecting face at given position |
|
|
FindClosestIntersection |
||
|
FindDeepestIntersection ( |
||
|
FindDeepestIntersection ( |
||
|
FindGeometryOpposingNormal |
Given a normal and a face index, compute the most opposing normal associated with the underlying geometry features. |
|
|
FindMostOpposingFace |
Returns the most opposing face. |
|
|
FindMostOpposingFaceScaled |
||
|
EImplicitObj... |
GetCollisionType() |
|
|
GetDoCollide() |
||
|
GetInnerUnscaledNormal |
Convert a normal in the outer scaled object space into a normal in the inner unscaled object space. |
|
|
GetMargin() |
||
|
GetMaterialIndex ( |
||
|
const T_DERI... |
GetObject() |
|
|
T_DERIVED &#... |
GetObject() |
|
|
T_DERIVED & |
GetObjectChecked() |
|
|
const T_DERI... |
GetObjectChecked() |
|
|
GetOffsetOfMargin() |
||
|
GetOffsetOfType() |
||
|
GetOuterScaledNormal |
Convert a normal in the inner unscaled object space into a normal in the outer scaled object space. |
|
|
EImplicitObj... |
GetType() |
|
|
GetTypeHash() |
||
|
GetTypeName() |
||
|
const FName |
GetTypeName ( |
|
|
HasBoundingBox() |
||
|
IsConvex() |
||
|
IsPerformanceWarning() |
||
|
IsUnderlyingUnion() |
This is strictly used for optimization purposes. |
|
|
IsValidGeometry() |
||
|
Normal ( |
Explicitly non-virtual. Must cast to derived types to target their implementation. |
|
|
Overlap |
This gives derived types a way to do an overlap check without calling PhiWithNormal todo: this api is confusing. |
|
|
PerformanceWarningAndSimplifaction() |
||
|
PhiWithNormal |
Find the closest point on the surface, and return the separating distance and axis. |
|
|
PhiWithNormalScaled |
Find the closest point on the surface, and return the separating distance and axis. |
|
|
Raycast |
This gives derived types a way to avoid calling PhiWithNormal todo: this api is confusing. |
|
|
ScaledNormalHelper |
Safely scale a normal - used with both scale and inverse scale. |
|
|
FImplicitObj... |
SerializationFactory ( |
|
|
Serialize ( |
||
|
Serialize ( |
||
|
SerializeImp ( |
||
|
FArchive & |
SerializeLegacyHelper ( |
|
|
SetCollisionType ( |
||
|
SetConvex ( |
||
|
SetDoCollide ( |
||
|
SetMargin ( |
Not all derived types support a margin, and for some it represents some other property (the radius of a sphere for example), so the setter should only be exposed in a derived class if at all (and it may want to change the size of the core shape as well) |
|
|
SignedDistance ( |
Explicitly non-virtual. Must cast to derived types to target their implementation. |
|
|
constexpr EI... |
StaticType() |
|
|
ToString() |
||
|
Track ( |
Turn on memory tracking. Must pass object itself as a serializable ptr so we can save it out. |
Name |
Description |
---|---|
TType |
Name |
Description |
---|---|
D |