Enzo
Loading...
Searching...
No Matches
Camera.h
1#pragma once
2#include "Engine/Primitives/Primitive.h"
3
4namespace enzo::geo {
5
13class Camera : public Primitive
14{
15 public:
16 Camera(std::string_view path = "/camera");
17 Camera(const Camera& other);
18 Camera& operator=(const Camera& rhs);
19 ~Camera() override = default;
20
21 PrimType getType() const override { return PrimType::CAMERA; }
22 std::shared_ptr<Primitive> clone() const override { return std::make_shared<Camera>(*this); }
23 TransformClass transformType() const override { return TransformClass::PRIMITIVE; }
24 void applyTransform(const Matrix4& mat, TransformClass transformClass) override;
25
26 Matrix4 getTransform() const;
27 void setTransform(const Matrix4& xform);
28
29 private:
30 attr::AttributeHandle<Matrix4> transformHandle_;
31};
32} // namespace enzo::geo