Ignition Physics

API Reference

5.1.0
ConstructEmpty.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2018 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 IGNITION_PHYSICS_CONSTRUCTEMPTY_HH_
19 #define IGNITION_PHYSICS_CONSTRUCTEMPTY_HH_
20 
21 #include <string>
22 
24 
25 namespace ignition {
26 namespace physics {
27 
32 class ConstructEmptyWorldFeature : public virtual Feature
33 {
34  public: template <typename PolicyT, typename FeaturesT>
35  class Engine : public virtual Feature::Engine<PolicyT, FeaturesT>
36  {
37  public: using WorldPtrType = WorldPtr<PolicyT, FeaturesT>;
38 
44  public: WorldPtrType ConstructEmptyWorld(const std::string &_name);
45  };
46 
47  public: template <typename PolicyT>
48  class Implementation : public virtual Feature::Implementation<PolicyT>
49  {
50  public: virtual Identity ConstructEmptyWorld(
51  const Identity &_engineID, const std::string &_name) = 0;
52  };
53 };
55 
59 class ConstructEmptyModelFeature : public virtual Feature
60 {
61  public: template <typename PolicyT, typename FeaturesT>
62  class World : public virtual Feature::World<PolicyT, FeaturesT>
63  {
64  public: using ModelPtrType = ModelPtr<PolicyT, FeaturesT>;
65 
71  public: ModelPtrType ConstructEmptyModel(const std::string &_name);
72  };
73 
74  public: template <typename PolicyT>
75  class Implementation : public virtual Feature::Implementation<PolicyT>
76  {
77  public: virtual Identity ConstructEmptyModel(
78  const Identity &_worldID, const std::string &_name) = 0;
79  };
80 };
81 
86 {
87  public: template <typename PolicyT, typename FeaturesT>
88  class Model : public virtual Feature::Model<PolicyT, FeaturesT>
89  {
90  public: using ModelPtrType = ModelPtr<PolicyT, FeaturesT>;
91 
97  public: ModelPtrType ConstructEmptyNestedModel(const std::string &_name);
98  };
99 
100  public: template <typename PolicyT>
101  class Implementation : public virtual Feature::Implementation<PolicyT>
102  {
103  public: virtual Identity ConstructEmptyNestedModel(
104  const Identity &_modelID, const std::string &_name) = 0;
105  };
106 };
107 
111 class ConstructEmptyLinkFeature : public virtual Feature
112 {
113  public: template <typename PolicyT, typename FeaturesT>
114  class Model : public virtual Feature::Model<PolicyT, FeaturesT>
115  {
116  public: using LinkPtrType = LinkPtr<PolicyT, FeaturesT>;
117 
123  public: LinkPtrType ConstructEmptyLink(const std::string &_name);
124  };
125 
126  public: template <typename PolicyT>
127  class Implementation : public virtual Feature::Implementation<PolicyT>
128  {
129  public: virtual Identity ConstructEmptyLink(
130  const Identity &_modelID, const std::string &_name) = 0;
131  };
132 };
133 
134 }
135 }
136 
137 #include <ignition/physics/detail/ConstructEmpty.hh>
138 
139 #endif
[ConstructEmptyWorld]
Definition: ConstructEmpty.hh:59
ModelPtr< PolicyT, FeaturesT > ModelPtrType
Definition: ConstructEmpty.hh:90
This class defines the concept of a Feature. It should be inherited by classes that define some plugi...
Definition: Feature.hh:35
WorldPtrType ConstructEmptyWorld(const std::string &_name)
Construct an empty world and attach a given name to it.
STL class.
This feature constructs an empty link and returns its pointer from the given model.
Definition: ConstructEmpty.hh:111
Placeholder class for the Engine API. Every Engine feature MUST inherit this class.
Definition: Feature.hh:40
Placeholder class in case a Feature does not define its own World API.
Definition: Feature.hh:49
Placeholder class in case a Feature does not define its own Model API.
Definition: Feature.hh:58
This feature constructs an empty nested model and returns its pointer from the given world...
Definition: ConstructEmpty.hh:85
LinkPtr< PolicyT, FeaturesT > LinkPtrType
Definition: ConstructEmpty.hh:116
WorldPtr< PolicyT, FeaturesT > WorldPtrType
Definition: ConstructEmpty.hh:37
ModelPtr< PolicyT, FeaturesT > ModelPtrType
Definition: ConstructEmpty.hh:64
This feature constructs an empty world and returns its pointer from the current physics engine in use...
Definition: ConstructEmpty.hh:32