Plasma Engine  2.0
Loading...
Searching...
No Matches
OccluderComponent.h
1#pragma once
2
3#include <Core/World/Component.h>
4#include <Core/World/World.h>
5#include <RendererCore/Rasterizer/RasterizerObject.h>
6#include <RendererCore/RendererCoreDLL.h>
7
11
12class PL_RENDERERCORE_DLL plOccluderComponentManager final : public plComponentManager<class plOccluderComponent, plBlockStorageType::FreeList>
13{
14public:
16};
17
29class PL_RENDERERCORE_DLL plOccluderComponent : public plComponent
30{
32
34 // plComponent
35
36public:
37 virtual void SerializeComponent(plWorldWriter& inout_stream) const override;
38 virtual void DeserializeComponent(plWorldReader& inout_stream) override;
39
40protected:
41 virtual void OnActivated() override;
42 virtual void OnDeactivated() override;
43
45 // plOccluderComponent
46
47public:
50
52 void SetExtents(const plVec3& vExtents); // [ property ]
53 const plVec3& GetExtents() const { return m_vExtents; } // [ property ]
54
55private:
56 plVec3 m_vExtents = plVec3(5.0f);
57
58 mutable plSharedPtr<const plRasterizerObject> m_pOccluderObject;
59
60 void OnUpdateLocalBounds(plMsgUpdateLocalBounds& msg);
61 void OnMsgExtractOccluderData(plMsgExtractOccluderData& msg) const;
62};
Base class of all component types.
Definition Component.h:25
Definition ComponentManager.h:88
Adds invisible geometry to a scene that is used for occlusion culling.
Definition OccluderComponent.h:30
Definition OccluderComponent.h:13
A Shared ptr manages a shared object and destroys that object when no one references it anymore....
Definition SharedPtr.h:10
A world encapsulates a scene graph of game objects and various component managers and their component...
Definition World.h:22
Reads a world description from a stream. Allows to instantiate that world multiple times in different...
Definition WorldReader.h:47
Stores an entire plWorld in a stream.
Definition WorldWriter.h:13
Definition RenderData.h:141
Definition TransformChangedMessage.h:7
Definition UpdateLocalBoundsMessage.h:9