Loading...
Searching...
No Matches
ParserConfig.hh
Go to the documentation of this file.
1/*
2 * Copyright 2020 Open Source Robotics Foundation
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 */
17
18#ifndef SDF_PARSER_CONFIG_HH_
19#define SDF_PARSER_CONFIG_HH_
20
21#include <functional>
22#include <map>
23#include <string>
24#include <vector>
25
26#include <gz/utils/ImplPtr.hh>
27
28#include "sdf/Error.hh"
31#include "sdf/sdf_config.h"
32#include "sdf/system_util.hh"
33
34
35namespace sdf
36{
37inline namespace SDF_VERSION_NAMESPACE
38{
41{
43 ERR,
44
46 WARN,
47
49 LOG,
50};
51
65
66// Forward declare private data class.
67class ParserConfigPrivate;
68
100{
102 public: using SchemeToPathMap =
103 std::map<std::string, std::vector<std::string> >;
104
106 public: ParserConfig();
107
112 public: static ParserConfig &GlobalConfig();
113
116 public: const std::function<std::string(const std::string &)> &
118
132 public: void SetFindCallback(
133 std::function<std::string(const std::string &)> _cb);
134
137 public: const SchemeToPathMap &URIPathMap() const;
138
144 public: void AddURIPath(const std::string &_uri, const std::string &_path);
145
149
153
157
161
165
169
177
182
187 ConfigureResolveAutoInertials _configuration);
188
193
196 public: const std::vector<CustomModelParser> &CustomModelParsers() const;
197
202 CustomInertiaCalculator _inertiaCalculator);
203
207
211 public: void URDFSetPreserveFixedJoint(bool _preserveFixedJoint);
212
216 public: bool URDFPreserveFixedJoint() const;
217
220 public: void SetStoreResovledURIs(bool _resolveURI);
221
231 public: void SetStoreResolvedURIs(bool _resolveURI);
232
236 public: bool StoreResolvedURIs() const;
237
239 GZ_UTILS_IMPL_PTR(dataPtr)
240};
241}
242}
243
244#endif
This class contains configuration options for the libsdformat parser.
Definition ParserConfig.hh:100
void AddURIPath(const std::string &_uri, const std::string &_path)
Associate paths to a URI.
void URDFSetPreserveFixedJoint(bool _preserveFixedJoint)
Set the preserveFixedJoint flag.
void ResetDeprecatedElementsPolicy()
Resets the policy for deprecated elements so that it follows WarningsPolicy.
const CustomInertiaCalculator & CustomInertiaCalc() const
Get the registered custom mesh MOI Calculator.
void SetDeprecatedElementsPolicy(EnforcementPolicy _policy)
Set the policy for deprecated elements.
void SetUnrecognizedElementsPolicy(EnforcementPolicy _policy)
Set the policy for unrecogonized elements without an xmlns.
void SetFindCallback(std::function< std::string(const std::string &)> _cb)
Set the callback to use when libsdformat can't find a file.
std::map< std::string, std::vector< std::string > > SchemeToPathMap
type alias for the map from URI scheme to search directories
Definition ParserConfig.hh:102
const SchemeToPathMap & URIPathMap() const
Get the URI scheme to search directories map.
const std::function< std::string(const std::string &)> FindFileCallback)() const
Get the find file callback function.
void SetStoreResolvedURIs(bool _resolveURI)
Set the storeResolvedURIs flag value.
void RegisterCustomModelParser(CustomModelParser _modelParser)
Registers a custom model parser.
EnforcementPolicy UnrecognizedElementsPolicy() const
Get the current unrecognized elements policy.
EnforcementPolicy WarningsPolicy() const
Get the current warning enforcement policy.
ConfigureResolveAutoInertials CalculateInertialConfiguration() const
Get the current configuration for the CalculateInertial() function.
void SetWarningsPolicy(EnforcementPolicy _policy)
Set the warning enforcment policy.
const std::vector< CustomModelParser > & CustomModelParsers() const
Get the registered custom model parsers.
bool URDFPreserveFixedJoint() const
Get the preserveFixedJoint flag value.
bool StoreResolvedURIs() const
Get the storeResolvedURIs flag value.
void SetStoreResovledURIs(bool _resolveURI)
Set the storeResolvedURIs flag value.
static ParserConfig & GlobalConfig()
Mutable access to a singleton ParserConfig that serves as the global ParserConfig object for all pars...
EnforcementPolicy DeprecatedElementsPolicy() const
Get the current deprecated elements policy.
void SetCalculateInertialConfiguration(ConfigureResolveAutoInertials _configuration)
Set the configuration for the CalculateInertial() function.
void RegisterCustomInertiaCalc(CustomInertiaCalculator _inertiaCalculator)
Registers a custom Moment of Inertia Calculator for Meshes.
std::function< std::optional< gz::math::Inertiald >(sdf::Errors &, const sdf::CustomInertiaCalcProperties &)> CustomInertiaCalculator
Definition CustomInertiaCalcProperties.hh:82
std::function< sdf::InterfaceModelPtr(const sdf::NestedInclude &, Errors &)> CustomModelParser
Defines a custom model parser.
Definition InterfaceElements.hh:197
EnforcementPolicy
Policy to describe how to treat certain conditions when parsing.
Definition ParserConfig.hh:41
@ WARN
Treat condition as a warning and issue to user.
@ LOG
Ignore condition in favor of best effort parsing.
@ ERR
Policy is to treat condition as an error and fail parsing.
ConfigureResolveAutoInertials
Configuration options of how CalculateInertial() function would be used.
Definition ParserConfig.hh:56
@ SAVE_CALCULATION
If this values is used, CalculateInertial() would be called and the computed inertial values would be...
@ SKIP_CALCULATION_IN_LOAD
If this value is used, CalculateInertial() won't be called from inside the Root::Load() function.
namespace for Simulation Description Format parser
Definition Actor.hh:35
#define SDFORMAT_VISIBLE
Use to represent "symbol visible" if supported.
Definition system_util.hh:25