Navigation
API > API/Runtime > API/Runtime/Chaos
| Name | FImplicitObject |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/ImplicitObject.h |
| Include Path | #include "Chaos/ImplicitObject.h" |
Syntax
class FImplicitObject : public Chaos::FChaosRefCountedObject
Inheritance Hierarchy
- FChaosRefCountedObject → FImplicitObject
Derived Classes
FImplicitObject derived class hierarchy
- FBoxFloat3
- FCapsule
- FConvex
- FCylinder
- FHeightField
- FImplicitObjectUnion
- FLevelSet
- FMLLevelSet
- FSkinnedTriangleMesh
- FTaperedCapsule
- FTaperedCylinder
- FTriangleMeshImplicitObject
- FWeightedLatticeBoneProxy
- FWeightedLatticeImplicitObject
- TImplicitObjectIntersection
- TImplicitObjectTransformed
- TPlane
- TSphere
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FImplicitObject
(
int32 Flags, |
Chaos/ImplicitObject.h | ||
| Chaos/ImplicitObject.h | |||
FImplicitObject
(
const FImplicitObject& |
Chaos/ImplicitObject.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FImplicitObject() |
Chaos/ImplicitObject.h |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| TType | FReal | Chaos/ImplicitObject.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| D | int | Chaos/ImplicitObject.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AccumulateAllImplicitObjects
(
TArray< Pair< const FImplicitObject*, FRigidTransform3 > >& Out, |
Chaos/ImplicitObject.h | ||
virtual void AccumulateAllSerializableImplicitObjects
(
TArray< Pair< TSerializablePtr< FImplicitObject >, FRigidTransform3 > >& Out, |
Chaos/ImplicitObject.h | ||
TargetType * AsA () |
Chaos/ImplicitObject.h | ||
const TargetType * AsA () |
Dynamic cast to type T_DERIVED. Returns null if T_DERIVED is not a valid cast for this object. | Chaos/ImplicitObject.h | |
TargetType * AsAChecked () |
Chaos/ImplicitObject.h | ||
const TargetType * AsAChecked () |
Chaos/ImplicitObject.h | ||
virtual const FAABB3 BoundingBox() |
Chaos/ImplicitObject.h | ||
virtual FAABB3 CalculateTransformedBounds
(
const FRigidTransform3& Transform |
Calculate the tight-fitting world-space bounding box. | Chaos/ImplicitObject.h | |
virtual TUniquePtr< FImplicitObject > Copy() |
Chaos/ImplicitObject.h | ||
virtual Chaos::FImplicitObjectPtr CopyGeometry() |
Chaos/ImplicitObject.h | ||
virtual Chaos::FImplicitObjectPtr CopyGeometryWithScale
(
const FVec3& Scale |
Chaos/ImplicitObject.h | ||
virtual TUniquePtr< FImplicitObject > CopyWithScale
(
const FVec3& Scale |
Chaos/ImplicitObject.h | ||
int32 CountLeafObjectsInHierarchy() |
Chaos/ImplicitObject.h | ||
virtual int32 CountLeafObjectsInHierarchyImpl() |
Chaos/ImplicitObject.h | ||
int32 CountObjectsInHierarchy() |
Chaos/ImplicitObject.h | ||
virtual int32 CountObjectsInHierarchyImpl() |
This should not be public, but it needs to be callable by derived classes on another instance. | Chaos/ImplicitObject.h | |
virtual TUniquePtr< FImplicitObject > DeepCopy() |
Chaos/ImplicitObject.h | ||
virtual Chaos::FImplicitObjectPtr DeepCopyGeometry() |
Chaos/ImplicitObject.h | ||
virtual Chaos::FImplicitObjectPtr DeepCopyGeometryWithScale
(
const FVec3& Scale |
Chaos/ImplicitObject.h | ||
virtual TUniquePtr< FImplicitObject > DeepCopyWithScale
(
const FVec3& Scale |
Chaos/ImplicitObject.h | ||
virtual FImplicitObject * Duplicate() |
Chaos/ImplicitObject.h | ||
virtual void FindAllIntersectingObjects
(
TArray< Pair< const FImplicitObject*, FRigidTransform3 > >& Out, |
Chaos/ImplicitObject.h | ||
virtual int32 FindClosestFaceAndVertices
(
const FVec3& Position, |
Finds the first intersecting face at given position | Chaos/ImplicitObject.h | |
Pair< FVec3, bool > FindClosestIntersection
(
const FVec3& StartPoint, |
Chaos/ImplicitObject.h | ||
Pair< FVec3, bool > FindDeepestIntersection
(
const FImplicitObject* Other, |
Chaos/ImplicitObject.h | ||
Pair< FVec3, bool > FindDeepestIntersection
(
const FImplicitObject* Other, |
Chaos/ImplicitObject.h | ||
virtual FVec3 FindGeometryOpposingNormal
(
const FVec3& DenormDir, |
Given a normal and a face index, compute the most opposing normal associated with the underlying geometry features. | Chaos/ImplicitObject.h | |
virtual int32 FindMostOpposingFace
(
const FVec3& Position, |
Returns the most opposing face. | Chaos/ImplicitObject.h | |
virtual int32 FindMostOpposingFaceScaled
(
const FVec3& Position, |
Chaos/ImplicitObject.h | ||
EImplicitObjectType GetCollisionType() |
Chaos/ImplicitObject.h | ||
bool GetDoCollide() |
Chaos/ImplicitObject.h | ||
virtual FReal GetMargin() |
Chaos/ImplicitObject.h | ||
virtual FRealSingle GetMarginf() |
Chaos/ImplicitObject.h | ||
virtual uint16 GetMaterialIndex
(
uint32 HintIndex |
Chaos/ImplicitObject.h | ||
virtual EImplicitObjectType GetNestedType() |
Chaos/ImplicitObject.h | ||
T_DERIVED * GetObject () |
Chaos/ImplicitObject.h | ||
const T_DERIVED * GetObject () |
Chaos/ImplicitObject.h | ||
T_DERIVED & GetObjectChecked () |
Chaos/ImplicitObject.h | ||
const T_DERIVED & GetObjectChecked () |
Chaos/ImplicitObject.h | ||
virtual FReal GetRadius() |
Chaos/ImplicitObject.h | ||
virtual FRealSingle GetRadiusf() |
Chaos/ImplicitObject.h | ||
EImplicitObjectType GetType() |
Chaos/ImplicitObject.h | ||
uint32 GetTypeHash() |
Chaos/ImplicitObject.h | ||
virtual FName GetTypeName () |
Chaos/ImplicitObject.h | ||
bool HasBoundingBox() |
Chaos/ImplicitObject.h | ||
bool IsA() |
Can this object be cast to type T_DERIVED? | Chaos/ImplicitObject.h | |
bool IsConvex() |
Chaos/ImplicitObject.h | ||
bool IsOverlappingBounds
(
const FAABB3& LocalBounds |
Whether this implicit (possibly a hierarchy) overlaps the bounds. | Chaos/ImplicitObject.h | |
virtual bool IsOverlappingBoundsImpl
(
const FAABB3& LocalBounds |
This should not be public, but it needs to be callable by derived classes on another instance. | Chaos/ImplicitObject.h | |
virtual bool IsPerformanceWarning() |
Chaos/ImplicitObject.h | ||
bool IsUnderlyingMesh() |
This is strictly used for optimization purposes. | Chaos/ImplicitObject.h | |
bool IsUnderlyingUnion() |
This is strictly used for optimization purposes. | Chaos/ImplicitObject.h | |
virtual bool IsValidGeometry() |
Chaos/ImplicitObject.h | ||
FVec3 Normal
(
const FVec3& x |
Explicitly non-virtual. Must cast to derived types to target their implementation. | Chaos/ImplicitObject.h | |
virtual bool Overlap
(
const FVec3& Point, |
This gives derived types a way to do an overlap check without calling PhiWithNormal todo: this api is confusing. | Chaos/ImplicitObject.h | |
virtual FString PerformanceWarningAndSimplifaction() |
Chaos/ImplicitObject.h | ||
FReal PhiWithNormal
(
const FVec3& x, |
Find the closest point on the surface, and return the separating distance and axis. | Chaos/ImplicitObject.h | |
virtual FReal PhiWithNormalScaled
(
const FVec3& Pos, |
Find the closest point on the surface, and return the separating distance and axis. | Chaos/ImplicitObject.h | |
virtual bool Raycast
(
const FVec3& StartPoint, |
This gives derived types a way to avoid calling PhiWithNormal todo: this api is confusing. | Chaos/ImplicitObject.h | |
| Chaos/ImplicitObject.h | |||
virtual void Serialize
(
FChaosArchive& Ar |
Chaos/ImplicitObject.h | ||
void SerializeImp
(
FArchive& Ar |
Chaos/ImplicitObject.h | ||
void SetCollisionType
(
EImplicitObjectType InCollisionType |
Chaos/ImplicitObject.h | ||
void SetConvex
(
const bool Convex |
Chaos/ImplicitObject.h | ||
void SetDoCollide
(
const bool Collide |
Chaos/ImplicitObject.h | ||
FReal SignedDistance
(
const FVec3& x |
Explicitly non-virtual. Must cast to derived types to target their implementation. | Chaos/ImplicitObject.h | |
virtual FString ToString() |
Chaos/ImplicitObject.h | ||
void Track
(
TSerializablePtr< FImplicitObject > This, |
Turn on memory tracking. Must pass object itself as a serializable ptr so we can save it out. | Chaos/ImplicitObject.h | |
void VisitLeafObjects
(
const FImplicitHierarchyVisitor& Visitor |
Visit all the leaf objects in the hierarchy | Chaos/ImplicitObject.h | |
virtual void VisitLeafObjectsImpl
(
const FRigidTransform3& ObjectTransform, |
This should not be public, but it needs to be callable by derived classes on another instance. | Chaos/ImplicitObject.h | |
void VisitObjects
(
const FImplicitHierarchyVisitorBool& Visitor |
Visit all the objects in the hierarchy, including inner nodes like Union and Transform | Chaos/ImplicitObject.h | |
virtual bool VisitObjectsImpl
(
const FRigidTransform3& ObjectTransform, |
This should not be public, but it needs to be callable by derived classes on another instance. | Chaos/ImplicitObject.h | |
void VisitOverlappingLeafObjects
(
const FAABB3& LocalBounds, |
Visit all the leaf objects in the hierarchy that overlap the specified local-space bounds. | Chaos/ImplicitObject.h | |
virtual void VisitOverlappingLeafObjectsImpl
(
const FAABB3& LocalBounds, |
This should not be public, but it needs to be callable by derived classes on another instance. | Chaos/ImplicitObject.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void SetMargin
(
FReal InMargin |
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) | Chaos/ImplicitObject.h | |
void SetMargin
(
FRealSingle InMargin |
Chaos/ImplicitObject.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static FVec3 GetInnerUnscaledNormal
(
const FVec3& OuterNormal, |
Convert a normal in the outer scaled object space into a normal in the inner unscaled object space. | Chaos/ImplicitObject.h | |
static int32 GetOffsetOfMargin() |
Chaos/ImplicitObject.h | ||
static int32 GetOffsetOfType() |
Chaos/ImplicitObject.h | ||
static FVec3 GetOuterScaledNormal
(
const FVec3& InnerNormal, |
Convert a normal in the inner unscaled object space into a normal in the outer scaled object space. | Chaos/ImplicitObject.h | |
static const FName GetTypeName
(
const EImplicitObjectType InType |
Chaos/ImplicitObject.h | ||
static FVec3 ScaleNormalizedHelper
(
const FVec3& Normal, |
Safely scale a normalized Vec3 - used with both scale and inverse scale. | Chaos/ImplicitObject.h | |
static FImplicitObject * SerializationFactory
(
FChaosArchive& Ar, |
Chaos/ImplicitObject.h | ||
static FArchive & SerializeLegacyHelper
(
FArchive& Ar, |
Chaos/ImplicitObject.h | ||
static EImplicitObjectType StaticType() |
Chaos/ImplicitObject.h |