Gazebo Physics

API Reference

8.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 GZ_PHYSICS_CONSTRUCTEMPTY_HH_
19#define GZ_PHYSICS_CONSTRUCTEMPTY_HH_
20
21#include <string>
22
24
25namespace gz {
26namespace physics {
27
32class 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
59class 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
111class 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