KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
Karma::UPrimitiveComponent Class Reference

PrimitiveComponents are SceneComponents that contain or generate some sort of geometry, generally to be rendered or used as collision data. More...

#include <PrimitiveComponent.h>

Inheritance diagram for Karma::UPrimitiveComponent:
Karma::USceneComponent Karma::UActorComponent Karma::UObject Karma::UObjectBase Karma::UMeshComponent Karma::UStaticMeshComponent

Public Member Functions

virtual void BeginPlay () override
 Used to detach physics objects before simulation begins. This is needed because at runtime we can't have simulated objects inside the attachment hierarchy.
void SetCachedMaxDrawDistance (const float newCachedMaxDrawDistance)
 Utility to cache the max draw distance based on cull distance volumes or the desired max draw distance.
std::shared_ptr< UniformBufferObjectGetComponentTransformUniform () const
 Getter for the transform uniform buffer object.
virtual void SetWorldTransform (const FTransform &NewTransform) override
Public Member Functions inherited from Karma::USceneComponent
 USceneComponent ()
 A constructor.
const glm::vec3 & GetRelativeRotation () const
 Gets the literal value of RelativeRotation.
const glm::vec3 & GetRelativeLocation () const
 Gets the literal value of RelativeLocation.
const glm::vec3 & GetRelativeScale3D () const
 Gets the literal value of RelativeScale3D.
void SetWorldLocation (glm::vec3 newLocation)
std::shared_ptr< USceneComponentGetAttachParent () const
 Get the SceneComponent we are attached to.
virtual FTransform GetSocketTransform (const std::string &InSocketName, ERelativeTransformSpace TransformSpace=RTS_World) const
 Get world-space socket transform.
const FTransformGetComponentTransform () const
 Get the current component-to-world transform for this component.
virtual void BeginDestroy () override
 Overridden BeginDestroy for USceneComponent.
bool IsUsingAbsoluteLocation () const
 Gets the literal value of bAbsoluteLocation.
bool IsUsingAbsoluteRotation () const
 Gets the literal value of bAbsoluteRotation.
bool IsUsingAbsoluteScale () const
 Gets the literal value of bAbsoluteScale.
void SetRelativeTransform (const FTransform &NewTransform)
 Set the transform of the component relative to its parent.
virtual void UpdateComponentToWorld (EUpdateTransformFlags UpdateTransformFlags=EUpdateTransformFlags::None, ETeleportType Teleport=ETeleportType::None) override final
 Recalculate the value of our component to world transform.
FORCEINLINE const std::string & GetAttachSocketName () const
 Getter for the m_AttachSocektName.
Public Member Functions inherited from Karma::UActorComponent
 UActorComponent ()
 A constructor.
virtual void TickComponent (float deltaTime)
 Function called every frame on this ActorComponent. Override this function to implement custom logic to be executed every frame. Only executes if the component is registered, and also PrimaryComponentTick.bCanEverTick must be set to true.
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason)
 Ends gameplay for this component. //Called from AActor::EndPlay only if bHasBegunPlay is true// <- not quite sure about the call.
AActorGetOwner () const
 Follow the Outer chain to get the AActor that 'Owns' this component.
void SetOwner (AActor *NewOwner)
 Sets the owner of this component.
bool HasBeenCreated () const
 Indicates that OnCreatedComponent has been called, but OnDestroyedComponent has not yet.
virtual void OnComponentCreated ()
 Called when a component is created (not loaded). This can happen in the editor or during gameplay.
bool IsRegistered () const
 See if this component is currently registered.
bool IsActive () const
 Returns whether the component is active or not.
virtual void Activate (bool bReset=false)
 Activates the SceneComponent, should be overridden by native child classes.
void SetActiveFlag (const bool bNewIsActive)
 Sets the value of bIsActive without causing other side effects to this instance.
bool HasBeenInitialized () const
 Indicates that InitializeComponent has been called, but UninitializeComponent has not yet.
virtual void InitializeComponent ()
 Initializes the component. Occurs at level startup or actor spawn. This is before BeginPlay (Actor or Component). All Components in the level will be Initialized on load before any Actor/Component gets BeginPlay Requires component to be registered, and bWantsInitializeComponent to be true.
bool HasBegunPlay () const
 Indicates that BeginPlay has been called, but EndPlay has not yet.
virtual void UninitializeComponent ()
 Handle this component being Uninitialized.
virtual void OnComponentDestroyed (bool bDestroyingHierarchy)
 Called when a component is destroyed.
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)
 Constructor used by StaticAllocateObject.
virtual void ShivaUObject ()
 One function to destroy them.
UPackageGetPackage () const
 Walks up the list of outers until it finds a package directly associated with the object.
UPackageGetExternalPackage () const
bool IsUnreachable () const
FORCEINLINE void SetInternalIndex (uint32_t StoreIndex)
FORCEINLINE uint32_t GetInternalIndex () 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 FlagsToClear)
FORCEINLINE bool HasAnyFlags (EObjectFlags FlagsToCheck) const
FORCEINLINE bool HasAnyInternalFlags (EInternalObjectFlags FlagsToCheck) const
FORCEINLINE void SetInternalFlags (EInternalObjectFlags FlagsToSet) const
FORCEINLINE void AddToRoot ()

Public Attributes

uint8_t CastShadow: 1
Public Attributes inherited from Karma::USceneComponent
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
 UObjectBase ()
 Providing a default constructor.
FORCEINLINE void SetFlagsTo (EObjectFlags NewFlags)
Protected Attributes inherited from Karma::UActorComponent
uint8_t m_bRegistered: 1

Detailed Description

PrimitiveComponents are SceneComponents that contain or generate some sort of geometry, generally to be rendered or used as collision data.

There are several subclasses for the various types of geometry, but the most common by far are the ShapeComponents (Capsule, Sphere, Box), StaticMeshComponent, and SkeletalMeshComponent. ShapeComponents generate geometry that is used for collision detection but are not rendered, while StaticMeshComponents and SkeletalMeshComponents contain pre-built geometry that is rendered, but can also be used for collision detection.

See also
UStaticMeshComponent
Since
Karma 1.0.0

Member Function Documentation

◆ BeginPlay()

void Karma::UPrimitiveComponent::BeginPlay ( )
overridevirtual

Used to detach physics objects before simulation begins. This is needed because at runtime we can't have simulated objects inside the attachment hierarchy.

Since
Karma 1.0.0

Reimplemented from Karma::UActorComponent.

◆ GetComponentTransformUniform()

std::shared_ptr< UniformBufferObject > Karma::UPrimitiveComponent::GetComponentTransformUniform ( ) const
inline

Getter for the transform uniform buffer object.

Returns
std::shared_ptr<UniformBufferObject> The uniform buffer object for the mesh's transformation matrix.
Since
Karma 1.0.0

◆ SetCachedMaxDrawDistance()

void Karma::UPrimitiveComponent::SetCachedMaxDrawDistance ( const float newCachedMaxDrawDistance)

Utility to cache the max draw distance based on cull distance volumes or the desired max draw distance.

Parameters
newCachedMaxDrawDistanceThe new max distance to be cached
Since
Karma 1.0.0

◆ SetWorldTransform()

void Karma::UPrimitiveComponent::SetWorldTransform ( const FTransform & NewTransform)
overridevirtual

Set the transform of the component in world space.

Parameters
NewTransformNew transform in world space for the component.

Rest are physics related. To be implemented in future.

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.
Since
Karma 1.0.0

Reimplemented from Karma::USceneComponent.

Member Data Documentation

◆ CastShadow

uint8_t Karma::UPrimitiveComponent::CastShadow

Controls whether the primitive component should cast a shadow or not.


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