Aeon Engine c550894
AeonGames Open Source Game Engine
Loading...
Searching...
No Matches
Camera.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_CAMERA_H
17#define AEONGAMES_CAMERA_H
18#include "aeongames/Component.hpp"
19
20namespace AeonGames
21{
22 class Node;
23 class Window;
25 class Camera final : public Component
26 {
27 public:
29 Camera();
32 ~Camera() 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 float GetFieldOfView() const;
45 float GetNearPlane() const;
47 float GetFarPlane() const;
50 void SetFieldOfView ( float aFieldOfView );
53 void SetNearPlane ( float aNearPlane );
56 void SetFarPlane ( float aFarPlane );
58 static const StringId& GetClassId();
59 private:
60 float mFieldOfView{60.0f};
61 float mNearPlane{1.0f};
62 float mFarPlane{16000.0f};
63 };
64}
65#endif
void SetFarPlane(float aFarPlane)
Sets the far clipping plane distance.
Definition Camera.cpp:86
void SetFieldOfView(float aFieldOfView)
Sets the field of view.
Definition Camera.cpp:78
const StringId & GetId() const final
Get the unique identifier for this component type.
Definition Camera.cpp:42
void ProcessMessage(Node &aNode, uint32_t aMessageType, const void *aMessageData) final
Process an incoming message.
Definition Camera.cpp:145
size_t GetPropertyCount() const final
Get the number of properties exposed by this component.
Definition Camera.cpp:56
void SetProperty(uint32_t, const Property &aProperty) final
Set the value aProperty for the property identified by aId.
Definition Camera.cpp:105
void SetNearPlane(float aNearPlane)
Sets the near clipping plane distance.
Definition Camera.cpp:82
float GetNearPlane() const
Returns the near clipping plane distance.
Definition Camera.cpp:70
void Render(const Node &aNode, Renderer &aRenderer, void *aWindowId) final
Render the component.
Definition Camera.cpp:141
float GetFarPlane() const
Returns the far clipping plane distance.
Definition Camera.cpp:74
Camera()
Default constructor.
Definition Camera.cpp:36
Property GetProperty(const StringId &aId) const final
Get the value of a property.
Definition Camera.cpp:91
void Update(Node &aNode, double aDelta) final
Update the component state.
Definition Camera.cpp:130
static const StringId & GetClassId()
Returns the class identifier for the Camera component.
Definition Camera.cpp:31
const StringId * GetPropertyInfoArray() const final
Get the array of property identifiers.
Definition Camera.cpp:61
float GetFieldOfView() const
Returns the field of view in degrees.
Definition Camera.cpp:66
Abstract base class for node components.
Definition Component.hpp:39
Scene graph node representing an entity in the game world.
Definition Node.hpp:54
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