Visitor for VRML field value extraction. More...
#include <VrmlFieldExtractor.hpp>
Public Member Functions | |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const std::string &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const bool &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const vrml_proc::parser::model::Vec3fArray &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const vrml_proc::parser::model::Vec2fArray &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const vrml_proc::parser::model::Int32Array &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const float &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const int32_t &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const vrml_proc::parser::model::Vec2f &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const vrml_proc::parser::model::Vec3f &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const vrml_proc::parser::model::Vec4f &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const vrml_proc::parser::model::UseNode &value) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const boost::recursive_wrapper< vrml_proc::parser::model::UseNode > &node) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const boost::recursive_wrapper< vrml_proc::parser::model::VrmlNode > &node) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const vrml_proc::parser::model::VrmlNode &node) const |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const std::vector< boost::variant< boost::recursive_wrapper< vrml_proc::parser::model::VrmlNode >, boost::recursive_wrapper< vrml_proc::parser::model::UseNode > > > &value) const |
template<typename U> | |
cpp::result< std::reference_wrapper< const T >, std::optional< std::string > > | operator() (const U &) const |
Visitor for VRML field value extraction.
number 0 (as int) number 0 (as float) X number 5.0 (as int) X number 5.0 (as float) number 5.5 (as float)
The logic is that we convert int to float and then store this value inside cache (see ExtractorCache
class) or we try to convert float to int (must be in format xyz.0) and also store it. If we encounter the query for the problematic value, we look it up inside the map to retrieve the same valid reference. ExtractorCache is thread-safe.