Karma Engine
Loading...
Searching...
No Matches
Karma::USceneComponent Class Reference

#include <SceneComponent.h>

Inheritance diagram for Karma::USceneComponent:
Collaboration diagram for Karma::USceneComponent:

Public Member Functions

const glm::vec3 & GetRelativeRotation () const
 
const glm::vec3 & GetRelativeLocation () const
 
const glm::vec3 & GetRelativeScale3D () const
 
void SetWorldLocation (glm::vec3 newLocation)
 
void SetWorldTransform (const FTransform &NewTransform)
 
std::shared_ptr< USceneComponentGetAttachParent () const
 
virtual FTransform GetSocketTransform (const std::string &InSocketName, ERelativeTransformSpace TransformSpace=RTS_World) const
 
const FTransformGetComponentTransform () const
 
virtual void BeginDestroy () override
 Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.
 
bool IsUsingAbsoluteLocation () const
 
bool IsUsingAbsoluteRotation () const
 
bool IsUsingAbsoluteScale () const
 
void SetRelativeTransform (const FTransform &NewTransform)
 
FORCEINLINE const std::string & GetAttachSocketName () const
 
- Public Member Functions inherited from Karma::UActorComponent
virtual void TickComponent (float deltaTime)
 
virtual void BeginPlay ()
 
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason)
 
AActorGetOwner () const
 
bool HasBeenCreated () const
 
virtual void OnComponentCreated ()
 
bool IsRegistered () const
 
bool IsActive () const
 
virtual void Activate (bool bReset=false)
 
void SetActiveFlag (const bool bNewIsActive)
 
bool HasBeenInitialized () const
 
virtual void InitializeComponent ()
 
bool HasBegunPlay () const
 
virtual void UninitializeComponent ()
 
virtual void OnComponentDestroyed (bool bDestroyingHierarchy)
 
- Public Member Functions inherited from Karma::UObject
 UObject ()
 
virtual void FinishDestroy ()
 
virtual const std::string & GetDesc ()
 Return a one line description of an object for viewing in the thumbnail view of the generic browser.
 
virtual class UWorldGetWorld () const
 Returns what UWorld this object is contained within.
 
bool IsValidChecked (const UObject *Test)
 
FORCEINLINE bool Modify (bool bAlwaysMarkDirty=true)
 
bool IsSelected () const
 Test the selection state of a UObject.
 
- Public Member Functions inherited from Karma::UObjectBase
 UObjectBase (UClass *inClass, EObjectFlags inFlags, EInternalObjectFlags inInternalFlags, UObject *inOuter, const std::string &inName)
 
UPackageGetPackage () const
 
UPackageGetExternalPackage () const
 
bool IsUnreachable () const
 
FORCEINLINE void SetInternalIndex (uint32_t StoreIndex)
 
FORCEINLINE uint32_t GetInterIndex () const
 
void MarkAsGarbage ()
 
void ClearGarbage ()
 
FORCEINLINE const std::string & GetName () const
 
FORCEINLINE void SetObjectName (const std::string &aName)
 
FORCEINLINE UObjectGetOuter () const
 
UObjectGetTypedOuter (UClass *Target) const
 
template<typename T >
T * GetTypedOuter () const
 
bool IsValidLowLevel () const
 
template<typename OtherClassType >
FORCEINLINE bool IsA (OtherClassType SomeBase) const
 
FORCEINLINE UClassGetClass () const
 
FORCEINLINE EObjectFlags GetFlags () const
 
FORCEINLINE void SetFlags (EObjectFlags NewFlags)
 
FORCEINLINE void ClearFlags (EObjectFlags NewFlags)
 
FORCEINLINE bool HasAnyFlags (EObjectFlags FlagsToCheck) const
 
FORCEINLINE bool HasAnyInternalFlags (EInternalObjectFlags FlagsToCheck) const
 
FORCEINLINE void SetInternalFlags (EInternalObjectFlags FlagsToSet) const
 
FORCEINLINE void AddToRoot ()
 

Public Attributes

glm::vec3 m_ComponentVelocity
 
std::string m_AttachSocketName
 
std::vector< std::shared_ptr< USceneComponent > > m_AttachChildren
 
- Public Attributes inherited from Karma::UActorComponent
EComponentCreationMethod m_CreationMethod
 
uint8_t m_bAutoActivate: 1
 
uint8_t m_bWantsInitializeComponent: 1
 

Additional Inherited Members

- Static Public Member Functions inherited from Karma::UObject
static const char * StaticConfigName ()
 
- Static Public Member Functions inherited from Karma::UObjectBase
static FORCEINLINE EInternalObjectFlags FixGarbageOrPendingKillInternalObjectFlags (const EInternalObjectFlags InFlags)
 
- Protected Member Functions inherited from Karma::UActorComponent
virtual bool ShouldActivate () const
 
- Protected Member Functions inherited from Karma::UObjectBase
FORCEINLINE void SetFlagsTo (EObjectFlags NewFlags)
 
- Protected Attributes inherited from Karma::UActorComponent
uint8_t m_bRegistered: 1
 

Detailed Description

A SceneComponent has a transform and supports attachment, but has no rendering or collision capabilities. Useful as a 'dummy' component in the hierarchy to offset others.

See also
Scene Components

Member Function Documentation

◆ BeginDestroy()

void Karma::USceneComponent::BeginDestroy ( )
overridevirtual

Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.

Todo
To be written with Shiva logic for UObject destruction.
Since
Karma 1.0.0

Reimplemented from Karma::UActorComponent.

Reimplemented in Karma::UChildActorComponent.

◆ GetAttachParent()

std::shared_ptr< USceneComponent > Karma::USceneComponent::GetAttachParent ( ) const

Get the SceneComponent we are attached to.

◆ GetComponentTransform()

const FTransform & Karma::USceneComponent::GetComponentTransform ( ) const
inline

Get the current component-to-world transform for this component

◆ GetRelativeLocation()

const glm::vec3 & Karma::USceneComponent::GetRelativeLocation ( ) const
inline

Gets the literal value of RelativeLocation. Note, this may be an absolute location if this is a root component (not attached to anything) or when IsUsingAbsoluteLocation returns true.

This exists so subclasses don't need to have direct access to the RelativeLocation property so it can be made private later.

◆ GetRelativeRotation()

const glm::vec3 & Karma::USceneComponent::GetRelativeRotation ( ) const
inline

Gets the literal value of RelativeRotation. Note, this may be an absolute rotation if this is a root component (not attached to anything) or when GetAbsoluteRotation returns true.

This exists so subclasses don't need to have direct access to the RelativeRotation property so it can be made private later.

◆ GetRelativeScale3D()

const glm::vec3 & Karma::USceneComponent::GetRelativeScale3D ( ) const
inline

Gets the literal value of RelativeScale3D. Note, this may be an absolute scale if this is a root component (not attached to anything) or when GetAbsoluteScale3D returns true.

This exists so subclasses don't need to have direct access to the RelativeScale3D property so it can be made private later.

◆ GetSocketTransform()

FTransform Karma::USceneComponent::GetSocketTransform ( const std::string & InSocketName,
ERelativeTransformSpace TransformSpace = RTS_World ) const
virtual

Get world-space socket transform.

Parameters
InSocketNameName of the socket or the bone to get the transform
Returns
Socket transform in world space if socket if found. Otherwise it will return component's transform in world space.

◆ IsUsingAbsoluteLocation()

bool Karma::USceneComponent::IsUsingAbsoluteLocation ( ) const
inline

Gets the literal value of bAbsoluteLocation.

This exists so subclasses don't need to have direct access to the bAbsoluteLocation property so it can be made private later.

◆ IsUsingAbsoluteRotation()

bool Karma::USceneComponent::IsUsingAbsoluteRotation ( ) const
inline

Gets the literal value of bAbsoluteRotation.

This exists so subclasses don't need to have direct access to the bAbsoluteRotation property so it can be made private later.

◆ IsUsingAbsoluteScale()

bool Karma::USceneComponent::IsUsingAbsoluteScale ( ) const
inline

Gets the literal value of bAbsoluteScale.

This exists so subclasses don't need to have direct access to the bReplicates property so it can be made private later.

◆ SetRelativeTransform()

void Karma::USceneComponent::SetRelativeTransform ( const FTransform & NewTransform)

Set the transform of the component relative to its parent

Parameters
NewTransformNew transform of the component relative to its parent.

To be active once physics is enabled

Parameters
SweepHitResultHit result from any impact if sweep is true.
bSweepWhether we sweep to the destination (currently not supported for rotation).
bTeleportWhether we teleport the physics state (if physics collision is enabled for this object). If true, physics velocity for this object is unchanged (so ragdoll parts are not affected by change in location). If false, physics velocity is updated based on the change in position (affecting ragdoll parts).

◆ SetWorldLocation()

void Karma::USceneComponent::SetWorldLocation ( glm::vec3 newLocation)

Put this component at the specified location in world space. Updates relative location to achieve the final world location.

Parameters
NewLocationNew location in world space for the component.

These params shall be incorporated later in dev cycle.

Parameters
SweepHitResultHit result from any impact if sweep is true.
bSweepWhether we sweep to the destination location, triggering overlaps along the way and stopping short of the target if blocked by something. Only the root component is swept and checked for blocking collision, child components move without sweeping. If collision is off, this has no effect.
bTeleportWhether we teleport the physics state (if physics collision is enabled for this object). If true, physics velocity for this object is unchanged (so ragdoll parts are not affected by change in location). If false, physics velocity is updated based on the change in position (affecting ragdoll parts). If CCD is on and not teleporting, this will affect objects along the entire sweep volume.

◆ SetWorldTransform()

void Karma::USceneComponent::SetWorldTransform ( const FTransform & NewTransform)

Set the transform of the component in world space.

Parameters
NewTransformNew transform in world space for the component.

Rest are physics related

Parameters
SweepHitResultHit result from any impact if sweep is true.
bSweepWhether we sweep to the destination location, triggering overlaps along the way and stopping short of the target if blocked by something. Only the root component is swept and checked for blocking collision, child components move without sweeping. If collision is off, this has no effect.
bTeleportWhether we teleport the physics state (if physics collision is enabled for this object). If true, physics velocity for this object is unchanged (so ragdoll parts are not affected by change in location). If false, physics velocity is updated based on the change in position (affecting ragdoll parts). If CCD is on and not teleporting, this will affect objects along the entire sweep volume.

Member Data Documentation

◆ m_AttachChildren

std::vector<std::shared_ptr<USceneComponent> > Karma::USceneComponent::m_AttachChildren

List of child SceneComponents that are attached to us.

◆ m_AttachSocketName

std::string Karma::USceneComponent::m_AttachSocketName

What we are currently attached to. If valid, RelativeLocation etc. are used relative to this object Optional socket name on AttachParent that we are attached to.

◆ m_ComponentVelocity

glm::vec3 Karma::USceneComponent::m_ComponentVelocity

Velocity of the component.

See also
GetComponentVelocity()

The documentation for this class was generated from the following files: