Cumulia Illustrator Rendering Engine v2.1.0
A Rendering engine for industrial CAD/CAE model and optimized for greatest performance
 
Loading...
Searching...
No Matches
action.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 2025-08-05
15// Version V2.1.0
16//##################################################################################################
17
18#pragma once
19
20#include "../mouse/action.h"
21
22#include <cilcore.h>
23#include <cilcamera.h>
24
25namespace cil
26{
28 {
29 protected:
30 std::shared_ptr<Camera> m_camera;
31 std::shared_ptr<Vector2i> m_windowSize;
33
34 public:
35 PanAction(std::shared_ptr<MouseDraggedAction> successor, std::shared_ptr<Camera> camera, std::shared_ptr<Vector2i> windowSize);
36
37 virtual bool begin(const ivec2& coord);
38 virtual void drag(const ivec2& coord);
39 virtual void end(const ivec2& coord);
40 };
41
43 {
44 protected:
45 std::shared_ptr<Camera> m_camera;
46 std::shared_ptr<Vector2i> m_windowSize;
47 std::shared_ptr<BoundingBox> m_boundingBox;
49
50 public:
51 OrbitAction(std::shared_ptr<MouseDraggedAction> successor, std::shared_ptr<Camera> camera, std::shared_ptr<Vector2i> windowSize, std::shared_ptr<BoundingBox> boundingBox = nullptr);
52
53 virtual bool begin(const ivec2& coord);
54 virtual void drag(const ivec2& coord);
55 virtual void end(const ivec2& coord);
56 };
57
59 {
60 protected:
61 std::shared_ptr<Camera> m_camera;
62 std::shared_ptr<Vector2i> m_windowSize;
64
65 public:
66 RollAction(std::shared_ptr<MouseDraggedAction> successor, std::shared_ptr<Camera> camera, std::shared_ptr<Vector2i> windowSize);
67
68 virtual bool begin(const ivec2& coord);
69 virtual void drag(const ivec2& coord);
70 virtual void end(const ivec2& coord);
71 };
72
74 {
75 protected:
76 std::shared_ptr<Camera> m_camera;
77 std::shared_ptr<Vector2i> m_windowSize;
78
79 public:
80 ZoomAction(std::shared_ptr<MouseWheeledAction> successor, std::shared_ptr<Camera> camera, std::shared_ptr<Vector2i> windowSize);
81
82 virtual bool wheel(const ivec2& coord, bool up);
83 };
84
85 std::shared_ptr<PanAction> _panAction(std::shared_ptr<MouseDraggedAction> successor, std::shared_ptr<Camera> camera, std::shared_ptr<Vector2i> windowSize);
86 std::shared_ptr<OrbitAction> _orbitAction(std::shared_ptr<MouseDraggedAction> successor, std::shared_ptr<Camera> camera, std::shared_ptr<Vector2i> windowSize, std::shared_ptr<BoundingBox> boundingBox = nullptr);
87 std::shared_ptr<RollAction> _rollAction(std::shared_ptr<MouseDraggedAction> successor, std::shared_ptr<Camera> camera, std::shared_ptr<Vector2i> windowSize);
88 std::shared_ptr<ZoomAction> _zoomAction(std::shared_ptr<MouseWheeledAction> successor, std::shared_ptr<Camera> camera, std::shared_ptr<Vector2i> windowSize);
89}
std::shared_ptr< MouseAction > successor() const
Definition action.h:74
Definition action.h:100
Definition action.h:43
std::shared_ptr< Vector2i > m_windowSize
Definition action.h:46
virtual bool begin(const ivec2 &coord)
Vector2i m_coord
Definition action.h:48
std::shared_ptr< BoundingBox > m_boundingBox
Definition action.h:47
virtual void drag(const ivec2 &coord)
OrbitAction(std::shared_ptr< MouseDraggedAction > successor, std::shared_ptr< Camera > camera, std::shared_ptr< Vector2i > windowSize, std::shared_ptr< BoundingBox > boundingBox=nullptr)
std::shared_ptr< Camera > m_camera
Definition action.h:45
virtual void end(const ivec2 &coord)
Definition action.h:28
Vector2i m_coord
Definition action.h:32
virtual void end(const ivec2 &coord)
std::shared_ptr< Camera > m_camera
Definition action.h:30
PanAction(std::shared_ptr< MouseDraggedAction > successor, std::shared_ptr< Camera > camera, std::shared_ptr< Vector2i > windowSize)
std::shared_ptr< Vector2i > m_windowSize
Definition action.h:31
virtual void drag(const ivec2 &coord)
virtual bool begin(const ivec2 &coord)
Definition action.h:59
std::shared_ptr< Camera > m_camera
Definition action.h:61
virtual void drag(const ivec2 &coord)
Vector2i m_coord
Definition action.h:63
std::shared_ptr< Vector2i > m_windowSize
Definition action.h:62
RollAction(std::shared_ptr< MouseDraggedAction > successor, std::shared_ptr< Camera > camera, std::shared_ptr< Vector2i > windowSize)
virtual void end(const ivec2 &coord)
virtual bool begin(const ivec2 &coord)
The class Vector2i inherits from the templated class of Vector2, and the template parameters are spec...
Definition vector.h:255
Definition action.h:74
ZoomAction(std::shared_ptr< MouseWheeledAction > successor, std::shared_ptr< Camera > camera, std::shared_ptr< Vector2i > windowSize)
virtual bool wheel(const ivec2 &coord, bool up)
std::shared_ptr< Camera > m_camera
Definition action.h:76
std::shared_ptr< Vector2i > m_windowSize
Definition action.h:77
Definition decal.h:23
std::shared_ptr< RollAction > _rollAction(std::shared_ptr< MouseDraggedAction > successor, std::shared_ptr< Camera > camera, std::shared_ptr< Vector2i > windowSize)
std::shared_ptr< OrbitAction > _orbitAction(std::shared_ptr< MouseDraggedAction > successor, std::shared_ptr< Camera > camera, std::shared_ptr< Vector2i > windowSize, std::shared_ptr< BoundingBox > boundingBox=nullptr)
std::shared_ptr< ZoomAction > _zoomAction(std::shared_ptr< MouseWheeledAction > successor, std::shared_ptr< Camera > camera, std::shared_ptr< Vector2i > windowSize)
std::shared_ptr< PanAction > _panAction(std::shared_ptr< MouseDraggedAction > successor, std::shared_ptr< Camera > camera, std::shared_ptr< Vector2i > windowSize)