Cumulia Illustrator Rendering Engine v1.1.0
A Rendering engine for industrial CAD/CAE model and optimized for greatest performance
 
Loading...
Searching...
No Matches
transformpath.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-10-31
15// Version V1.1.0
16//##################################################################################################
17
18#pragma once
19
20#include "cilcore.h"
21
22namespace cil
23{
25 {
26 public:
28
29 virtual std::shared_ptr<Matrix4f> transform(const std::shared_ptr<Vector3f>& position, float factor) = 0;
30 };
31
33 {
34 private:
35 std::shared_ptr<Vector3f> m_origin;
36 std::shared_ptr<Vector3f> m_direction;
37
38 public:
40
41 virtual std::shared_ptr<Matrix4f> transform(const std::shared_ptr<Vector3f>& position, float factor);
42
43 void setOrigin(const std::shared_ptr<Vector3f>& origin);
44 const std::shared_ptr<Vector3f>& origin() const;
45
46 void setDirection(const std::shared_ptr<Vector3f>& direction);
47 const std::shared_ptr<Vector3f>& direction() const;
48 };
49
51 {
52 private:
53 std::shared_ptr<Vector3f> m_origin;
54 std::shared_ptr<Vector3f> m_normal;
55
56 public:
58
59 virtual std::shared_ptr<Matrix4f> transform(const std::shared_ptr<Vector3f>& position, float factor);
60
61 void setOrigin(const std::shared_ptr<Vector3f>& origin);
62 const std::shared_ptr<Vector3f>& origin() const;
63
64 void setNormal(const std::shared_ptr<Vector3f>& normal);
65 const std::shared_ptr<Vector3f>& normal() const;
66 };
67
69 {
70 private:
71 std::shared_ptr<Vector3f> m_origin;
72
73 public:
75
76 virtual std::shared_ptr<Matrix4f> transform(const std::shared_ptr<Vector3f>& position, float factor);
77
78 void setOrigin(const std::shared_ptr<Vector3f>& origin);
79 const std::shared_ptr<Vector3f>& origin() const;
80 };
81
82 std::shared_ptr<AxialTransformPath> _axialTransformPath();
83 std::shared_ptr<AxialTransformPath> _axialTransformPath(const std::shared_ptr<Vector3f>& origin, const std::shared_ptr<Vector3f>& direction);
84
85 std::shared_ptr<RadialTransformPath> _radialTransformPath();
86 std::shared_ptr<RadialTransformPath> _radialTransformPath(const std::shared_ptr<Vector3f>& origin, const std::shared_ptr<Vector3f>& normal);
87
88 std::shared_ptr<SpaceTransformPath> _spaceTransformPath();
89 std::shared_ptr<SpaceTransformPath> _spaceTransformPath(const std::shared_ptr<Vector3f>& origin);
90}
Definition transformpath.h:33
void setOrigin(const std::shared_ptr< Vector3f > &origin)
void setDirection(const std::shared_ptr< Vector3f > &direction)
const std::shared_ptr< Vector3f > & origin() const
virtual std::shared_ptr< Matrix4f > transform(const std::shared_ptr< Vector3f > &position, float factor)
const std::shared_ptr< Vector3f > & direction() const
Definition transformpath.h:51
void setNormal(const std::shared_ptr< Vector3f > &normal)
const std::shared_ptr< Vector3f > & normal() const
virtual std::shared_ptr< Matrix4f > transform(const std::shared_ptr< Vector3f > &position, float factor)
const std::shared_ptr< Vector3f > & origin() const
void setOrigin(const std::shared_ptr< Vector3f > &origin)
Definition transformpath.h:69
virtual std::shared_ptr< Matrix4f > transform(const std::shared_ptr< Vector3f > &position, float factor)
const std::shared_ptr< Vector3f > & origin() const
void setOrigin(const std::shared_ptr< Vector3f > &origin)
Definition transformpath.h:25
virtual std::shared_ptr< Matrix4f > transform(const std::shared_ptr< Vector3f > &position, float factor)=0
Definition decal.h:23
std::shared_ptr< RadialTransformPath > _radialTransformPath()
std::shared_ptr< AxialTransformPath > _axialTransformPath()
std::shared_ptr< SpaceTransformPath > _spaceTransformPath()