Aeon Engine c550894
AeonGames Open Source Game Engine
Loading...
Searching...
No Matches
PointLight.h
1/*
2Copyright (C) 2019,2021,2025,2026 Rodrigo Jose Hernandez Cordoba
3
4Licensed under the Apache License, Version 2.0 (the "License");
5you may not use this file except in compliance with the License.
6You may obtain a copy of the License at
7
8http://www.apache.org/licenses/LICENSE-2.0
9
10Unless required by applicable law or agreed to in writing, software
11distributed under the License is distributed on an "AS IS" BASIS,
12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13See the License for the specific language governing permissions and
14limitations under the License.
15*/
16#ifndef AEONGAMES_POINTLIGHT_H
17#define AEONGAMES_POINTLIGHT_H
18#include "aeongames/Component.hpp"
19
20namespace AeonGames
21{
22 class Node;
23 class Window;
25 class PointLight final : public Component
26 {
27 public:
29 PointLight();
32 ~PointLight() final;
33 const StringId& GetId() const final;
34 size_t GetPropertyCount () const final;
35 const StringId* GetPropertyInfoArray () const final;
36 Property GetProperty ( const StringId& aId ) const final;
37 void SetProperty ( uint32_t, const Property& aProperty ) final;
38 void Update ( Node& aNode, double aDelta ) final;
39 void Render ( const Node& aNode, Renderer& aRenderer, void* aWindowId ) final;
40 void ProcessMessage ( Node& aNode, uint32_t aMessageType, const void* aMessageData ) final;
42
43 static const StringId& GetClassId();
44 private:
45 };
46}
47#endif
Abstract base class for node components.
Definition Component.hpp:39
Scene graph node representing an entity in the game world.
Definition Node.hpp:54
void ProcessMessage(Node &aNode, uint32_t aMessageType, const void *aMessageData) final
Process an incoming message.
PointLight()
Default constructor.
size_t GetPropertyCount() const final
Get the number of properties exposed by this component.
const StringId * GetPropertyInfoArray() const final
Get the array of property identifiers.
static const StringId & GetClassId()
Returns the class identifier for the PointLight component.
const StringId & GetId() const final
Get the unique identifier for this component type.
void Update(Node &aNode, double aDelta) final
Update the component state.
void Render(const Node &aNode, Renderer &aRenderer, void *aWindowId) final
Render the component.
void SetProperty(uint32_t, const Property &aProperty) final
Set the value aProperty for the property identified by aId.
Property GetProperty(const StringId &aId) const final
Get the value of a property.
Abstract base class for rendering backends.
Definition Renderer.hpp:44
CRC-based compile-time string identifier.
Definition StringId.hpp:31
<- This is here just for the literals
Definition AABB.hpp:31
std::variant< int, long, long long, unsigned, unsigned long, unsigned long long, float, double, std::string, std::filesystem::path > Property
A variant type that can hold any commonly used property value.
Definition Property.hpp:31