opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
multi_body_system_output_extractor.h
Go to the documentation of this file.
1#pragma once
2
6
9
10#include <cstddef>
11#include <string>
12#include <string_view>
13
14namespace OpenSim { class Component; }
15namespace SimTK { class MultibodySystem; }
16
17namespace opyn
18{
19 // an output extractor that uses a free-function to extract a single value from
20 // a SimTK::MultiBodySystem
21 //
22 // handy for extracting simulation stats (e.g. num steps taken etc.)
24 public:
25 using ExtractorFn = float (*)(const SimTK::MultibodySystem&);
26
28 std::string_view name,
29 std::string_view description,
30 ExtractorFn extractor) :
31
32 m_Name{name},
33 m_Description{description},
34 m_Extractor{extractor}
35 {}
36
37 osc::UID getAuxiliaryDataID() const { return m_AuxiliaryDataID; }
38 ExtractorFn getExtractorFunction() const { return m_Extractor; }
39
40 private:
41 osc::CStringView implGetName() const final { return m_Name; }
42 osc::CStringView implGetDescription() const final { return m_Description; }
44 OutputValueExtractor implGetOutputValueExtractor(const OpenSim::Component&) const final;
45 size_t implGetHash() const final;
46 bool implEquals(const OutputExtractor&) const final;
47
48 osc::UID m_AuxiliaryDataID;
49 std::string m_Name;
50 std::string m_Description;
51 ExtractorFn m_Extractor;
52 };
53
57}
Definition multi_body_system_output_extractor.h:23
osc::UID getAuxiliaryDataID() const
Definition multi_body_system_output_extractor.h:37
float(*)(const SimTK::MultibodySystem &) ExtractorFn
Definition multi_body_system_output_extractor.h:25
OutputValueExtractor implGetOutputValueExtractor(const OpenSim::Component &) const final
osc::CStringView implGetName() const final
Definition multi_body_system_output_extractor.h:41
MultiBodySystemOutputExtractor(std::string_view name, std::string_view description, ExtractorFn extractor)
Definition multi_body_system_output_extractor.h:27
osc::CStringView implGetDescription() const final
Definition multi_body_system_output_extractor.h:42
OutputExtractorDataType implGetOutputType() const final
Definition multi_body_system_output_extractor.h:43
ExtractorFn getExtractorFunction() const
Definition multi_body_system_output_extractor.h:38
bool implEquals(const OutputExtractor &) const final
Definition output_extractor.h:29
Definition output_value_extractor.h:18
Definition shared_output_extractor.h:28
Definition c_string_view.h:12
Definition uid.h:14
Definition static_component_registries.h:3
Definition custom_decoration_generator.h:6
Definition component_registry.h:14
int GetNumMultiBodySystemOutputExtractors()
OutputExtractorDataType
Definition output_extractor_data_type.h:6
const MultiBodySystemOutputExtractor & GetMultiBodySystemOutputExtractor(int idx)
SharedOutputExtractor GetMultiBodySystemOutputExtractorDynamic(int idx)
Definition custom_decoration_generator.h:5