MultiAxisDevice.h
Go to the documentation of this file.
1 // This file is a part of the OpenSurgSim project.
2 // Copyright 2013, SimQuest Solutions Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 #ifndef SURGSIM_DEVICES_MULTIAXIS_MULTIAXISDEVICE_H
17 #define SURGSIM_DEVICES_MULTIAXIS_MULTIAXISDEVICE_H
18 
19 #include <memory>
20 #include <string>
21 
24 
25 namespace SurgSim
26 {
27 namespace Devices
28 {
29 
30 class RawMultiAxisDevice;
31 class PoseIntegrator;
32 
33 SURGSIM_STATIC_REGISTRATION(MultiAxisDevice);
34 
58 {
59 public:
62  explicit MultiAxisDevice(const std::string& uniqueName);
63 
65 
69  void setPositionScale(double scale);
70 
73  double getPositionScale() const;
74 
79  void setOrientationScale(double scale);
80 
83  double getOrientationScale() const;
84 
90  void setAxisDominance(bool onOff);
91 
94  bool isUsingAxisDominance() const;
95 
99  void setReset(const std::string& name);
100 
101 private:
104  static double defaultPositionScale();
105 
108  static double defaultOrientationScale();
109 
111  std::shared_ptr<RawMultiAxisDevice> m_rawDevice;
112 
114  std::shared_ptr<PoseIntegrator> m_filter;
115 };
116 
117 }; // namespace Devices
118 }; // namespace SurgSim
119 
120 #endif // SURGSIM_DEVICES_MULTIAXIS_MULTIAXISDEVICE_H
SurgSim::Devices::MultiAxisDevice::getPositionScale
double getPositionScale() const
Gets the position scale for this device.
Definition: MultiAxisDevice.cpp:57
SurgSim::Devices::MultiAxisDevice::setPositionScale
void setPositionScale(double scale)
Sets the position scale for this device.
Definition: MultiAxisDevice.cpp:52
SurgSim::Devices::MultiAxisDevice::defaultPositionScale
static double defaultPositionScale()
Get the default position scale from device ticks to meters.
Definition: MultiAxisDevice.cpp:82
SurgSim::Devices::MultiAxisDevice::setReset
void setReset(const std::string &name)
Sets the string name of the boolean entry that will reset the pose to its initial value.
Definition: MultiAxisDevice.cpp:92
SurgSim::Devices::FilteredDevice
A DeviceInterface connected in series with one or more DeviceFilters. Useful for serialization.
Definition: FilteredDevice.h:39
SurgSim::Devices::MultiAxisDevice::m_rawDevice
std::shared_ptr< RawMultiAxisDevice > m_rawDevice
The raw underlying device.
Definition: MultiAxisDevice.h:111
SurgSim
Definition: CompoundShapeToGraphics.cpp:29
SurgSim::Devices::MultiAxisDevice::defaultOrientationScale
static double defaultOrientationScale()
Get the default rotation from device ticks to radians.
Definition: MultiAxisDevice.cpp:87
SurgSim::Devices::MultiAxisDevice::m_filter
std::shared_ptr< PoseIntegrator > m_filter
The pose integration filter.
Definition: MultiAxisDevice.h:114
SurgSim::Devices::MultiAxisDevice::setOrientationScale
void setOrientationScale(double scale)
Sets the orientation scale for this device.
Definition: MultiAxisDevice.cpp:62
SurgSim::Devices::MultiAxisDevice::MultiAxisDevice
MultiAxisDevice(const std::string &uniqueName)
Constructor.
Definition: MultiAxisDevice.cpp:31
CommonDevice.h
SurgSim::Devices::MultiAxisDevice::SURGSIM_CLASSNAME
SURGSIM_CLASSNAME(SurgSim::Devices::MultiAxisDevice)
SurgSim::Devices::MultiAxisDevice::isUsingAxisDominance
bool isUsingAxisDominance() const
Gets the axis dominance setting for this device.
Definition: MultiAxisDevice.cpp:77
SurgSim::Devices::MultiAxisDevice::getOrientationScale
double getOrientationScale() const
Gets the orientation scale for this device.
Definition: MultiAxisDevice.cpp:67
SurgSim::Devices::MultiAxisDevice
A class implementing the communication with a multi-axis controller input device, for example a 3DCon...
Definition: MultiAxisDevice.h:57
string
string(TOUPPER ${DEVICE} DEVICE_UPPER_CASE) option(BUILD_DEVICE_$
Definition: CMakeLists.txt:38
SurgSim::Devices::MultiAxisDevice::setAxisDominance
void setAxisDominance(bool onOff)
Turns on or off the axis dominance setting for this device.
Definition: MultiAxisDevice.cpp:72
FilteredDevice.h