Ignition Physics

API Reference

4.0.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 
31 class ConstructEmptyWorldFeature : public virtual Feature
32 {
33  public: template <typename PolicyT, typename FeaturesT>
34  class Engine : public virtual Feature::Engine<PolicyT, FeaturesT>
35  {
36  public: using WorldPtrType = WorldPtr<PolicyT, FeaturesT>;
37 
43  public: WorldPtrType ConstructEmptyWorld(const std::string &_name);
44  };
45 
46  public: template <typename PolicyT>
47  class Implementation : public virtual Feature::Implementation<PolicyT>
48  {
49  public: virtual Identity ConstructEmptyWorld(
50  const Identity &_engineID, const std::string &_name) = 0;
51  };
52 };
53 
57 class ConstructEmptyModelFeature : public virtual Feature
58 {
59  public: template <typename PolicyT, typename FeaturesT>
60  class World : public virtual Feature::World<PolicyT, FeaturesT>
61  {
62  public: using ModelPtrType = ModelPtr<PolicyT, FeaturesT>;
63 
69  public: ModelPtrType ConstructEmptyModel(const std::string &_name);
70  };
71 
72  public: template <typename PolicyT>
73  class Implementation : public virtual Feature::Implementation<PolicyT>
74  {
75  public: virtual Identity ConstructEmptyModel(
76  const Identity &_worldID, const std::string &_name) = 0;
77  };
78 };
79 
84 {
85  public: template <typename PolicyT, typename FeaturesT>
86  class Model : public virtual Feature::Model<PolicyT, FeaturesT>
87  {
88  public: using ModelPtrType = ModelPtr<PolicyT, FeaturesT>;
89 
95  public: ModelPtrType ConstructEmptyNestedModel(const std::string &_name);
96  };
97 
98  public: template <typename PolicyT>
99  class Implementation : public virtual Feature::Implementation<PolicyT>
100  {
101  public: virtual Identity ConstructEmptyNestedModel(
102  const Identity &_modelID, const std::string &_name) = 0;
103  };
104 };
105 
109 class ConstructEmptyLinkFeature : public virtual Feature
110 {
111  public: template <typename PolicyT, typename FeaturesT>
112  class Model : public virtual Feature::Model<PolicyT, FeaturesT>
113  {
114  public: using LinkPtrType = LinkPtr<PolicyT, FeaturesT>;
115 
121  public: LinkPtrType ConstructEmptyLink(const std::string &_name);
122  };
123 
124  public: template <typename PolicyT>
125  class Implementation : public virtual Feature::Implementation<PolicyT>
126  {
127  public: virtual Identity ConstructEmptyLink(
128  const Identity &_modelID, const std::string &_name) = 0;
129  };
130 };
131 
132 }
133 }
134 
135 #include <ignition/physics/detail/ConstructEmpty.hh>
136 
137 #endif
This feature constructs an empty model and returns its pointer from the given world.
Definition: ConstructEmpty.hh:57
ModelPtr< PolicyT, FeaturesT > ModelPtrType
Definition: ConstructEmpty.hh:88
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:109
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:83
LinkPtr< PolicyT, FeaturesT > LinkPtrType
Definition: ConstructEmpty.hh:114
WorldPtr< PolicyT, FeaturesT > WorldPtrType
Definition: ConstructEmpty.hh:36
ModelPtr< PolicyT, FeaturesT > ModelPtrType
Definition: ConstructEmpty.hh:62
This feature constructs an empty world and returns its pointer from the current physics engine in use...
Definition: ConstructEmpty.hh:31