/* * Copyright (C) 2019 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"; import "gz/msgs/header.proto"; import "gz/msgs/world_stats.proto"; import "gz/msgs/serialized.proto"; /// \brief Holds all the information needed to reconstruct an entity and its /// components. message SerializedEntityMap { /// \brief The entity is uniquely identified by its ID. uint64 id = 1; /// \brief All the components belonging to the entity. map components = 2; /// \brief Whether the entity and all its components should be removed at the /// current state. bool remove = 3; }; /// \brief Holds all the information needed to reconstruct the state of an /// entity-component-system (ECS) architecture at a given time. /// An ECS's state consists of several entities, each with an arbitrary number /// of components tied to them. message SerializedStateMap { /// \brief Header data, which contains the simulation time. gz.msgs.Header header = 1; /// \brief All the entities currently in the simulation. map entities = 2; /// \brief Indicates if there is any one time component change, /// or if all changes are periodic. bool has_one_time_component_changes = 3; }; /// \brief All the data needed to step an ECS system, such as current /// simulation time and entity states. message SerializedStepMap { /// \brief Iteration information, such as sim time and paused state. WorldStatistics stats = 1; /// \brief State of entities and components. SerializedStateMap state = 2; };