Gazebo Physics

API Reference

7.4.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 GZ_PHYSICS_CONSTRUCTEMPTY_HH_
19 #define GZ_PHYSICS_CONSTRUCTEMPTY_HH_
20 
21 #include <string>
22 
24 
25 namespace gz {
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 
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 
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 
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 
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 <gz/physics/detail/ConstructEmpty.hh>
138 
139 #endif