KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
PrimitiveComponent.h
Go to the documentation of this file.
1
10#pragma once
11
12#include "SceneComponent.h"
13
14namespace Karma
15{
17
27 class KARMA_API UPrimitiveComponent : public USceneComponent
28 {
29 DECLARE_KARMA_CLASS(UPrimitiveComponent, USceneComponent)
30
31 public:
32
33 UPrimitiveComponent();
34
36 uint8_t CastShadow : 1;
37
43 virtual void BeginPlay() override;
44
45 private:
51 mutable float LastRenderTime;
52
54 mutable float LastRenderTimeOnScreen;
55
56 //friend class FPrimitiveSceneInfo;
57
63 std::shared_ptr<UniformBufferObject> m_ComponentTransformUniform;
64
65 glm::mat4 m_UniformTranformMatrix;
66
67 public:
74 void SetCachedMaxDrawDistance(const float newCachedMaxDrawDistance);
75
83 std::shared_ptr<UniformBufferObject> GetComponentTransformUniform() const { return m_ComponentTransformUniform; }
84
85 virtual void SetWorldTransform(const FTransform& NewTransform) override;
86 };
87}
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
#define DECLARE_KARMA_CLASS(TClass, TSuperClass)
Karma's gamecode object class declaration.
Definition GFrameworkMacros.h:45
This file contains the class USceneComponent.
Transform composed of Scale, Rotation (as a quaternion), and Translation.
Definition Transform.h:125
virtual void BeginPlay() override
Used to detach physics objects before simulation begins. This is needed because at runtime we can't h...
Definition PrimitiveComponent.cpp:16
uint8_t CastShadow
Definition PrimitiveComponent.h:36
void SetCachedMaxDrawDistance(const float newCachedMaxDrawDistance)
Utility to cache the max draw distance based on cull distance volumes or the desired max draw distanc...
Definition PrimitiveComponent.cpp:20
std::shared_ptr< UniformBufferObject > GetComponentTransformUniform() const
Getter for the transform uniform buffer object.
Definition PrimitiveComponent.h:83
USceneComponent()
A constructor.
Definition SceneComponent.cpp:8
Abstract class for UBO. A UBO is mostly used for shader variables, for instance projection or view ma...
Definition Buffer.h:376