-
Notifications
You must be signed in to change notification settings - Fork 49
/
Copy pathentity_factory.proto
86 lines (72 loc) · 2.76 KB
/
entity_factory.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
* Copyright (C) 2017 Open Source Robotics Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
syntax = "proto3";
package gz.msgs;
option java_package = "com.gz.msgs";
option java_outer_classname = "EntityFactoryProtos";
/// \ingroup gz.msgs
/// \interface EntityFactory
/// \brief Message to create new entities at a given pose.
/// An entity can be created in one of the following ways:
///
/// 1. From an SDF string (sdf)
/// 2. From an SDF file (sdf_filename)
/// 3. From a message (model / light)
/// 4. Cloning an existing entity (clone_name)
import "gz/msgs/header.proto";
import "gz/msgs/light.proto";
import "gz/msgs/model.proto";
import "gz/msgs/pose.proto";
import "gz/msgs/spherical_coordinates.proto";
message EntityFactory
{
/// \brief Optional header data
Header header = 1;
/// \brief Only one method is supported at a time
oneof from
{
/// \brief SDF description in string format.
string sdf = 2;
/// \brief Full path to SDF file.
string sdf_filename = 3;
/// \brief Description of model to be inserted.
Model model = 4;
/// \brief Description of light to be inserted.
Light light = 5;
/// \brief Name of entity to clone.
string clone_name = 6;
}
/// \brief Pose where the entity will be spawned in the world.
/// If set, `spherical_coordinates` will be ignored.
Pose pose = 7;
/// \brief New name for the entity, overrides the name on the SDF.
string name = 8;
/// \brief Whether the server is allowed to rename the entity in case of
/// overlap with existing entities.
bool allow_renaming = 9;
/// \brief The pose will be defined relative to this frame. If left empty,
/// the "world" frame will be used.
string relative_to = 10;
/// \brief Spherical coordinates where the entity will be spawned in the
/// world.
/// If `pose` is also set:
/// * `pose.position` is ignored in favor of latitude, longitude and
/// elevation.
/// * `pose.orientation` is used in conjunction with heading:
/// Quaternion::fromEuler(0, 0, heading) * pose.orientation
SphericalCoordinates spherical_coordinates = 11;
}