Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
RigidTransform.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace ph::math
6{
7
8/*
9 An abstraction for transforms that enforce object rigidity during
10 the transformation process. Implementations should follow this
11 requirement strictly.
12*/
14{
15private:
16 void transformVector(
17 const Vector3R& vector,
18 const Time& time,
19 Vector3R* out_vector) const override = 0;
20
21 void transformOrientation(
22 const Vector3R& orientation,
23 const Time& time,
24 Vector3R* out_orientation) const override = 0;
25
26 void transformPoint(
27 const Vector3R& point,
28 const Time& time,
29 Vector3R* out_point) const override = 0;
30
31 void transformLineSegment(
32 const Vector3R& lineStartPos,
33 const Vector3R& lineDir,
34 real lineMinT,
35 real lineMaxT,
36 const Time& time,
37 Vector3R* out_lineStartPos,
38 Vector3R* out_lineDir,
39 real* out_lineMinT,
40 real* out_lineMaxT) const override = 0;
41};
42
43}// end namespace ph::math
Definition Time.h:9
Definition RigidTransform.h:14
Definition Transform.h:21
Math functions and utilities.
Definition TransformInfo.h:10