RayZaler
0.1
The free opto-mechanical simulation framework
TripodFrame.h
1
//
2
// Copyright (c) 2024 Gonzalo José Carracedo Carballal
3
//
4
// This program is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU Lesser General Public License as
6
// published by the Free Software Foundation, either version 3 of the
7
// License, or (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful, but
10
// WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU Lesser General Public License for more details.
13
//
14
// You should have received a copy of the GNU Lesser General Public
15
// License along with this program. If not, see
16
// <http://www.gnu.org/licenses/>
17
//
18
19
#ifndef TRIPODFRAME_H
20
#define TRIPODFRAME_H
21
22
#include <ReferenceFrame.h>
23
24
namespace
RZ {
25
class
TripodFrame
:
public
ReferenceFrame
{
26
27
Vec3
m_center;
28
Matrix3
m_R;
29
30
// Parameters
31
Real m_legs[3] = {2e-2, 2e-2, 2e-2};
32
Real m_ta_angle = 70.;
// Deg
33
Real m_ta_radius = 42e-3;
34
35
// Calculated
36
Vec3
m_p1;
37
Vec3
m_p2;
38
Vec3
m_p3;
39
40
int
m_centerIndex = -1;
41
42
void
recalculateData();
43
44
protected
:
45
void
recalculateFrame();
46
47
public
:
48
TripodFrame
(
49
std::string
const
&name,
50
ReferenceFrame
*parent);
51
virtual
~TripodFrame
()
override
=
default
;
52
53
void
setLeg(
int
, Real);
54
void
setRadius(Real);
55
void
setAngle(Real);
56
};
57
}
58
59
#endif
// TRIPODFRAME_H
RZ::ReferenceFrame
Definition:
ReferenceFrame.h:59
RZ::TripodFrame
Definition:
TripodFrame.h:25
RZ::Matrix3
Definition:
Matrix.h:48
RZ::Vec3
Definition:
Vector.h:66
LibRZ
include
TripodFrame.h
Generated by
1.9.4