Cumulia Illustrator Rendering Engine v1.0.0
A Rendering engine for industrial CAD/CAE model and optimized for greatest performance
 
Loading...
Searching...
No Matches
navigationaction.h
1//##################################################################################################
2//
3// Copyright (c) 2024 Beijing Qiongqi Tech Co.,Ltd. All rights reserved.
4
5// This source code is confidential and proprietary to Beijing Qiongqi Tech Co.,Ltd(The Holder).
6// Any unauthorized use, copying, modification, or distribution of the code is strictly prohibited.
7// Any user shall obtain authorizaition from the Holder before modifying the source code. And the user shall not
8// sublicense, sell, distribute, or transfer the source code, whether in original or modified form, to any third party
9// without the prior written consent of the Holder.
10
11// This copyright notice and permission grant shall be included in all copies or substantial portions of the source code.
12
13// Author Cumulia Illustrator
14// Date 2024-05-01
15// Version V1.0.0
16//##################################################################################################
17
18#pragma once
19
20#include "action.h"
21
22#include <cilcore.h>
23#include <cilcamera.h>
24
25#include <memory>
26
27namespace cil
28{
30 {
31 private:
32 std::shared_ptr<Camera> m_camera;
33 std::shared_ptr<Vector2i> m_windowSize;
34
35 public:
36 PanAction(const std::shared_ptr<Camera>& camera, const std::shared_ptr<Vector2i>& windowSize);
37
38 protected:
39 virtual void drag(const ivec2& position);
40 };
41
43 {
44 private:
45 std::shared_ptr<Camera> m_camera;
46 std::shared_ptr<Vector2i> m_windowSize;
47 std::shared_ptr<BoundingBox> m_boundingBox;
48
49 public:
50 OrbitAction(const std::shared_ptr<Camera>& camera, const std::shared_ptr<Vector2i>& windowSize, const std::shared_ptr<BoundingBox>& boundingBox = nullptr);
51
52 protected:
53 virtual void drag(const ivec2& position);
54 };
55
57 {
58 private:
59 std::shared_ptr<Camera> m_camera;
60 std::shared_ptr<Vector2i> m_windowSize;
61
62 public:
63 RollAction(const std::shared_ptr<Camera>& camera, const std::shared_ptr<Vector2i>& windowSize);
64
65 protected:
66 virtual void drag(const ivec2& position);
67 };
68
70 {
71 private:
72 std::shared_ptr<Camera> m_camera;
73 std::shared_ptr<Vector2i> m_windowSize;
74
75 public:
76 ZoomAction(const std::shared_ptr<Camera>& camera, const std::shared_ptr<Vector2i>& windowSize);
77
78 protected:
79 virtual bool wheel(const ivec2& position, bool up);
80 };
81
82 std::shared_ptr<PanAction> _panAction(const std::shared_ptr<Camera>& camera, const std::shared_ptr<Vector2i>& windowSize);
83 std::shared_ptr<OrbitAction> _orbitAction(const std::shared_ptr<Camera>& camera, const std::shared_ptr<Vector2i>& windowSize, const std::shared_ptr<BoundingBox>& boundingBox = nullptr);
84 std::shared_ptr<RollAction> _rollAction(const std::shared_ptr<Camera>& camera, const std::shared_ptr<Vector2i>& windowSize);
85 std::shared_ptr<ZoomAction> _zoomAction(const std::shared_ptr<Camera>& camera, const std::shared_ptr<Vector2i>& windowSize);
86}
Definition action.h:70
Definition action.h:85
Definition navigationaction.h:43
virtual void drag(const ivec2 &position)
OrbitAction(const std::shared_ptr< Camera > &camera, const std::shared_ptr< Vector2i > &windowSize, const std::shared_ptr< BoundingBox > &boundingBox=nullptr)
Definition navigationaction.h:30
virtual void drag(const ivec2 &position)
PanAction(const std::shared_ptr< Camera > &camera, const std::shared_ptr< Vector2i > &windowSize)
Definition navigationaction.h:57
RollAction(const std::shared_ptr< Camera > &camera, const std::shared_ptr< Vector2i > &windowSize)
virtual void drag(const ivec2 &position)
The class Vector2i inherits from the templated class of Vector2, and the template parameters are spec...
Definition vector.h:255
Definition navigationaction.h:70
virtual bool wheel(const ivec2 &position, bool up)
ZoomAction(const std::shared_ptr< Camera > &camera, const std::shared_ptr< Vector2i > &windowSize)
Definition decal.h:23
std::shared_ptr< ZoomAction > _zoomAction(const std::shared_ptr< Camera > &camera, const std::shared_ptr< Vector2i > &windowSize)
std::shared_ptr< OrbitAction > _orbitAction(const std::shared_ptr< Camera > &camera, const std::shared_ptr< Vector2i > &windowSize, const std::shared_ptr< BoundingBox > &boundingBox=nullptr)
std::shared_ptr< PanAction > _panAction(const std::shared_ptr< Camera > &camera, const std::shared_ptr< Vector2i > &windowSize)
std::shared_ptr< RollAction > _rollAction(const std::shared_ptr< Camera > &camera, const std::shared_ptr< Vector2i > &windowSize)