/* * Copyright (C) 2021 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 = "ParticleEmitterProtos"; /// \ingroup gz.msgs /// \interface ParticleEmitter /// \brief Message for a particle emitter. import "gz/msgs/boolean.proto"; import "gz/msgs/color.proto"; import "gz/msgs/float.proto"; import "gz/msgs/header.proto"; import "gz/msgs/material.proto"; import "gz/msgs/pose.proto"; import "gz/msgs/stringmsg.proto"; import "gz/msgs/vector3d.proto"; message ParticleEmitter { /// \brief Optional header data. Header header = 1; /// \brief The emitter name. string name = 2; /// \brief Unique Id. uint32 id = 3; /// \brief All possible emitter types. enum EmitterType { /// \brief Point emitter. POINT = 0; /// \brief Box emitter. BOX = 1; /// \brief Cylinder emitter. CYLINDER = 2; /// \brief Ellipsoid emitter. ELLIPSOID = 3; } /// \brief The emitter type. EmitterType type = 4; /// \brief The position of the emitter. Pose pose = 5; /// The size of the emitter where the particles are sampled. Vector3d size = 6; /// \brief How many particles per second should be emitted. Float rate = 7; /// \brief The number of seconds the emitter is active. Float duration = 8; /// \brief Whether particle emitter is enabled or not. Boolean emitting = 9; /// \brief The particle dimensions (width, height, depth). Vector3d particle_size = 10; /// \brief The number of seconds each particle will ’live’ for before /// being destroyed. Float lifetime = 11; /// \brief The material which all particles in the emitter will use. Material material = 12; /// \brief The minimum velocity each particle is emitted (m/s). Float min_velocity = 13; /// \brief The maximum velocity each particle is emitted (m/s). Float max_velocity = 14; /// \brief The starting color of the particles. Color color_start = 15; /// \brief The end color of the particles. Color color_end = 16; /// \brief The amount by which to scale the particles in both x and y /// direction per second (screen coordinates). Float scale_rate = 17; /// \brief The path to the color image used as an affector. StringMsg color_range_image = 18; /// \brief The topic name used by the particle emitter for control and /// modification. StringMsg topic = 19; /// \brief The ratio of particles that will be detected by sensors. /// Increasing the ratio means there is a higher chance of particles /// reflecting and interfering with depth sensing, making the emitter /// appear more dense. Decreasing the ratio decreases the chance of /// particles reflecting and interfering with depth sensing, making it /// appear less dense. Value is in the range of [0, 1]. Float particle_scatter_ratio = 20; }