.. _package-rst-geometry:
======================
Package rst.geometry
======================
*Not documented*
Messages
========
.. container:: mess4ge-multi
.. container:: mess4ge-graph
.. digraph:: message_graph
fontname="Arial";
fontsize=11;
stylesheet="../_static/corlab.css";
node [fontsize=11]
node [fontname="Arial"]
edge [fontsize=11]
edge [fontname="Arial"]
"14" [label=<
| BoundingBox |
|
Vec2DInt | top_left |
UINT32 | width |
UINT32 | height |
UINT32 | image_width |
UINT32 | image_height |
>,shape=box,style=filled,fillcolor="white"];
"15" [label=< | Vec2DInt |
|
INT32 | x |
INT32 | y |
>,shape=box,style=filled,fillcolor="white"];
"13" [label=< | AxisAlignedBoundingBox3DFloat |
|
Translation | left_front_bottom |
FLOAT32 | width |
FLOAT32 | depth |
FLOAT32 | height |
>,shape=box,style=filled,fillcolor="white"];
"12" [label=< | BoundingBox3DFloat |
|
Pose | transformation |
FLOAT32 | width |
FLOAT32 | depth |
FLOAT32 | height |
>,shape=box,style=filled,fillcolor="white"];
"6" [label=< | PolygonalPatch3DSet |
|
PolygonalPatch3D | patches |
>,shape=box,style=filled,fillcolor="white"];
"7" [label=< | PolygonalPatch3D |
|
Pose | base |
Vec2DFloat | border |
>,shape=box,style=filled,fillcolor="white"];
"11" [label=< | Vec2DFloat |
|
FLOAT32 | x |
FLOAT32 | y |
>,shape=box,style=filled,fillcolor="white"];
"8" [label=< | Pose |
|
Translation | translation |
Rotation | rotation |
>,shape=box,style=filled,fillcolor="white"];
"10" [label=< | Rotation |
|
FLOAT64 | qw |
FLOAT64 | qx |
FLOAT64 | qy |
FLOAT64 | qz |
ASCII-STRING | frame_id |
>,shape=box,style=filled,fillcolor="white"];
"9" [label=< | Translation |
|
FLOAT64 | x |
FLOAT64 | y |
FLOAT64 | z |
ASCII-STRING | frame_id |
>,shape=box,style=filled,fillcolor="white"];
"1" [label=< | TriangleMesh3DFloatSet |
|
TriangleMesh3DFloat | meshes |
>,shape=box,style=filled,fillcolor="white"];
"2" [label=< | TriangleMesh3DFloat |
|
PointCloud3DFloat | vertices |
Triangle | triangles |
>,shape=box,style=filled,fillcolor="white"];
"5" [label=< | Triangle |
|
UINT32 | point1 |
UINT32 | point2 |
UINT32 | point3 |
>,shape=box,style=filled,fillcolor="white"];
"3" [label=< | PointCloud3DFloat |
|
Vec3DFloat | points |
>,shape=box,style=filled,fillcolor="white"];
"4" [label=< | Vec3DFloat |
|
FLOAT32 | x |
FLOAT32 | y |
FLOAT32 | z |
>,shape=box,style=filled,fillcolor="white"];
"14":top_left -> "15" [];
"13":left_front_bottom -> "9" [];
"12":transformation -> "8" [];
"6":patches -> "7" [];
"7":border -> "11" [];
"7":base -> "8" [];
"8":rotation -> "10" [];
"8":translation -> "9" [];
"1":meshes -> "2" [];
"2" -> "5" [dir=both,arrowtail=odiamond];
"2":triangles -> "5" [];
"2":vertices -> "3" [];
"3":points -> "4" [];
.. container:: mess4ge-list
.. container:: messages
* :ref:`TriangleMesh3DFloatSet `
* :ref:`TriangleMesh3DFloat `
* :ref:`PolygonalPatch3DSet `
* :ref:`PolygonalPatch3D `
* :ref:`BoundingBox3DFloat `
* :ref:`AxisAlignedBoundingBox3DFloat `
* :ref:`PointCloud3DFloat `
* :ref:`BoundingBox `
* :ref:`Pose `
* :ref:`Rotation `
* :ref:`Translation `
.. container:: clearer
clearer: should be made invisible via css
.. _message-rst-geometry-trianglemesh3dfloatset:
Message TriangleMesh3DFloatSet
------------------------------
.. container:: message-rst-geometry-trianglemesh3dfloatset-multi
.. container:: message-rst-geometry-trianglemesh3dfloatset-documentation
.. py:class:: rst.geometry.TriangleMesh3DFloatSet
A set of :py:class:`TriangleMesh3DFloat ` objects.
.. codeauthor:: Johannes Wienke
.. py:attribute:: meshes
:type: array of :py:class:`rst.geometry.TriangleMesh3DFloat`
Empty collection is allowed. Order is not important.
.. container:: message-rst-geometry-trianglemesh3dfloatset-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/sandbox/rst/geometry/TriangleMesh3DFloatSet.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/sandbox/rst/geometry/TriangleMesh3DFloatSet.proto
:lines: 12-19
:language: protobuf
:emphasize-lines: 6-6
.. _message-rst-geometry-trianglemesh3dfloat:
Message TriangleMesh3DFloat
---------------------------
.. container:: message-rst-geometry-trianglemesh3dfloat-multi
.. container:: message-rst-geometry-trianglemesh3dfloat-documentation
.. py:class:: rst.geometry.TriangleMesh3DFloat
Defines a triangle mesh for describing 3D objects through vertices and their
assembly to triangles. Edges are therefore only implicitly defined through
the definitions of the triangles. Other typical mesh properties like faces,
and surfaces are not defined.
.. codeauthor:: Johannes Wienke
.. py:attribute:: vertices
:type: :py:class:`rst.geometry.PointCloud3DFloat`
The collection of vertices in the mesh.
.. py:attribute:: triangles
:type: array of :py:class:`rst.geometry.TriangleMesh3DFloat.Triangle`
Defines the triangles that form the mesh in the form of 3-tuples to
indexes in the vertices point cloud. No particular ordering is assumed
here.
.. container:: message-rst-geometry-trianglemesh3dfloat-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/sandbox/rst/geometry/TriangleMesh3DFloat.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/sandbox/rst/geometry/TriangleMesh3DFloat.proto
:lines: 15-54
:language: protobuf
:emphasize-lines: 6-6,38-38
.. _message-rst-geometry-trianglemesh3dfloat-triangle:
Message Triangle
----------------
.. container:: message-rst-geometry-trianglemesh3dfloat-triangle-multi
.. container:: message-rst-geometry-trianglemesh3dfloat-triangle-documentation
.. py:class:: rst.geometry.TriangleMesh3DFloat.Triangle
Definition of a single triangle in a mesh by means of indices to the
vertex point cloud for all corners of the triangle. Vertices are indexed
in counter-clockwise order to define a normal of the triangle that
points outwards.
.. py:attribute:: point1
:type: :py:class:`UINT32`
Index of the first vertex defining the triangle.
.. py:attribute:: point2
:type: :py:class:`UINT32`
Index of the second vertex defining the triangle.
.. py:attribute:: point3
:type: :py:class:`UINT32`
Index of the third vertex defining the triangle.
.. container:: message-rst-geometry-trianglemesh3dfloat-triangle-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/sandbox/rst/geometry/TriangleMesh3DFloat.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/sandbox/rst/geometry/TriangleMesh3DFloat.proto
:lines: 28-45
:language: protobuf
:emphasize-lines: 6-6,11-11,16-16
.. _message-rst-geometry-polygonalpatch3dset:
Message PolygonalPatch3DSet
---------------------------
.. container:: message-rst-geometry-polygonalpatch3dset-multi
.. container:: message-rst-geometry-polygonalpatch3dset-documentation
.. py:class:: rst.geometry.PolygonalPatch3DSet
A set of :py:class:`PolygonalPatch3D ` objects.
.. codeauthor:: Leon Ziegler
.. py:attribute:: patches
:type: array of :py:class:`rst.geometry.PolygonalPatch3D`
Empty collection is allowed. Order is not important.
.. container:: message-rst-geometry-polygonalpatch3dset-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/sandbox/rst/geometry/PolygonalPatch3DSet.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/sandbox/rst/geometry/PolygonalPatch3DSet.proto
:lines: 12-19
:language: protobuf
:emphasize-lines: 6-6
.. _message-rst-geometry-polygonalpatch3d:
Message PolygonalPatch3D
------------------------
.. container:: message-rst-geometry-polygonalpatch3d-multi
.. container:: message-rst-geometry-polygonalpatch3d-documentation
.. py:class:: rst.geometry.PolygonalPatch3D
A two-dimensional patch in 3D space bounded by a polygon.
In contrast to planes (with infinite extend) this kind of bounded
patch needs a local coordinate system in order to define the
borders of the patch. Thus, instead of the widely used point-normal
representation, we use a complete 6D pose for describing the
location of the plane. We define that the X and Y axes of the
resulting coordinate system span the plane. Accordingly, the Z axis
corresponds to the normal on the plane. The patch border is a 2D
polygon defined by a sequence of :py:class:`Vec2DFloat ` objects.
In order to construct a 3D representation of the patch, the 2D
coordinates of the polygon must be extended by a Z = 0 coordinate
and transformed using the 6D pose. The polygon must not be self
intersecting.
.. codeauthor:: Leon Ziegler
.. py:attribute:: base
:type: :py:class:`rst.geometry.Pose`
The 6D transformation specifying the base (X and Y axes span
the plane in which the patch and its bounding polygon reside).
.. py:attribute:: border
:type: array of :py:class:`rst.math.Vec2DFloat`
**Constraint**: ``len(value) >= 3``
The 2D polygon defining the border of the patch.
Winding rule: ccw w.r.t. normal (Z axis) (right-hand rule)
Linear segments arise by connecting consecutive entries of the
array (including an additional implicit segment connecting the
last entry to the first entry).
Order of entries is significant.
.. container:: message-rst-geometry-polygonalpatch3d-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/sandbox/rst/geometry/PolygonalPatch3D.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/sandbox/rst/geometry/PolygonalPatch3D.proto
:lines: 27-49
:language: protobuf
:emphasize-lines: 7-7,21-21
.. _message-rst-geometry-boundingbox3dfloat:
Message BoundingBox3DFloat
--------------------------
.. container:: message-rst-geometry-boundingbox3dfloat-multi
.. container:: message-rst-geometry-boundingbox3dfloat-documentation
.. py:class:: rst.geometry.BoundingBox3DFloat
Bounding-box in 3D in general position and orientation.
The general bounding-box with dimensions :py:attr:`width ` x :py:attr:`depth `
x :py:attr:`height ` is constructed by translating and rotating (via :py:attr:`transformation `) an axis-aligned bounding-box around its center of
mass.
For an axis-aligned version, see :py:class:`AxisAlignedBoundingBox3DFloat `.
.. codeauthor:: Christian Emmerich
.. codeauthor:: Jan Moringen
.. py:attribute:: transformation
:type: :py:class:`rst.geometry.Pose`
Transformation, consisting of translation and orientation, of
the center of mass of the bounding-box.
.. py:attribute:: width
:type: :py:class:`FLOAT32`
**Unit**: meter
The width (along the X axis) of the box.
.. py:attribute:: depth
:type: :py:class:`FLOAT32`
**Unit**: meter
The depth (along the Y axis) of the box.
.. py:attribute:: height
:type: :py:class:`FLOAT32`
**Unit**: meter
The height (along the Z axis) of the box.
.. container:: message-rst-geometry-boundingbox3dfloat-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/BoundingBox3DFloat.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/BoundingBox3DFloat.proto
:lines: 22-48
:language: protobuf
:emphasize-lines: 7-7,13-13,19-19,25-25
.. _message-rst-geometry-axisalignedboundingbox3dfloat:
Message AxisAlignedBoundingBox3DFloat
-------------------------------------
.. container:: message-rst-geometry-axisalignedboundingbox3dfloat-multi
.. container:: message-rst-geometry-axisalignedboundingbox3dfloat-documentation
.. py:class:: rst.geometry.AxisAlignedBoundingBox3DFloat
An axis-aligned bounding-box in 3D.
The bounding-box is constructed by spanning at :py:attr:`left_front_bottom ` a rectangular volume of lengths :py:attr:`width ` x
:py:attr:`depth ` x :py:attr:`height ` along the positive directions of the X,
Y and Z axis respectively.
.. parsed-literal::
^ Z
|
| +----------------------+ ^
| / /|
| / / |
| / / | :py:attr:`height `
| +----------------------+ |
| | | |
| | | + v
| Y | | / ^
| ^ | | / :py:attr:`depth `
| / | |/
| / +----------------------+ v
| / :py:attr:`left_front_bottom `
| / < :py:attr:`width ` >
|/
+-----------------------------> X
For a bouding-box in general orientation (i.e. not axis-aligned)
see :py:class:`BoundingBox3DFloat `.
.. codeauthor:: Christian Emmerich
.. codeauthor:: Jan Moringen
.. py:attribute:: left_front_bottom
:type: :py:class:`rst.geometry.Translation`
Coordinates of the bottom left front corner.
.. py:attribute:: width
:type: :py:class:`FLOAT32`
**Unit**: meter
The width (along the X axis) of the box.
.. py:attribute:: depth
:type: :py:class:`FLOAT32`
**Unit**: meter
The depth (along the Y axis) of the box.
.. py:attribute:: height
:type: :py:class:`FLOAT32`
**Unit**: meter
The height (along the Z axis) of the box.
.. container:: message-rst-geometry-axisalignedboundingbox3dfloat-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/AxisAlignedBoundingBox3DFloat.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/AxisAlignedBoundingBox3DFloat.proto
:lines: 41-66
:language: protobuf
:emphasize-lines: 6-6,12-12,18-18,24-24
.. _message-rst-geometry-pointcloud3dfloat:
Message PointCloud3DFloat
-------------------------
.. container:: message-rst-geometry-pointcloud3dfloat-multi
.. container:: message-rst-geometry-pointcloud3dfloat-documentation
.. py:class:: rst.geometry.PointCloud3DFloat
A collection of points in 3D space.
.. codeauthor:: Jordi Sanchez Riera
.. todo::
correct author?
.. py:attribute:: points
:type: array of :py:class:`rst.math.Vec3DFloat`
TODO
@unit(meter?)
.. container:: message-rst-geometry-pointcloud3dfloat-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/PointCloud3DFloat.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/PointCloud3DFloat.proto
:lines: 13-21
:language: protobuf
:emphasize-lines: 7-7
.. _message-rst-geometry-boundingbox:
Message BoundingBox
-------------------
.. container:: message-rst-geometry-boundingbox-multi
.. container:: message-rst-geometry-boundingbox-documentation
.. py:class:: rst.geometry.BoundingBox
**Constraint**: ``.top_left.x < .image_width``
**Constraint**: ``.top_left.x + .width <= .image_width``
**Constraint**: ``.top_left.y < .image_height``
**Constraint**: ``.top_left.y + .height <= .image_height``
A bounding box, which is associated to a raster image.
.. parsed-literal::
(0,0) Image
+----------------------------------+ ^
| |
| :py:attr:`top_left ` |
| +---------------+ ^ |
| | | |
| | | :py:attr:`height ` | :py:attr:`image_height `
| | | |
| +---------------+ v |
| < :py:attr:`width ` > |
| |
+----------------------------------+ v
< :py:attr:`image_width ` >
All values are in pixels and refer to the associated image.
.. codeauthor:: Johannes Wienke
.. py:attribute:: top_left
:type: :py:class:`rst.math.Vec2DInt`
**Unit**: pixel
Coordinates of the top left corner.
.. py:attribute:: width
:type: :py:class:`UINT32`
**Unit**: pixel
Width of the bounding box.
.. py:attribute:: height
:type: :py:class:`UINT32`
**Unit**: pixel
Height of the bounding box.
.. py:attribute:: image_width
:type: :py:class:`UINT32`
**Unit**: pixel
Width of the image the bounding box is based on.
.. py:attribute:: image_height
:type: :py:class:`UINT32`
**Unit**: pixel
Height of the image the bounding box is based on.
.. container:: message-rst-geometry-boundingbox-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/BoundingBox.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/BoundingBox.proto
:lines: 34-66
:language: protobuf
:emphasize-lines: 7-7,13-13,19-19,25-25,31-31
.. _message-rst-geometry-pose:
Message Pose
------------
.. container:: message-rst-geometry-pose-multi
.. container:: message-rst-geometry-pose-documentation
.. py:class:: rst.geometry.Pose
Pose data (camera, robot, ...).
.. todo::
extend explanation
.. codeauthor:: Arne Nordmann
.. py:attribute:: translation
:type: :py:class:`rst.geometry.Translation`
TODO
.. py:attribute:: rotation
:type: :py:class:`rst.geometry.Rotation`
TODO
.. container:: message-rst-geometry-pose-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/Pose.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/Pose.proto
:lines: 14-26
:language: protobuf
:emphasize-lines: 6-6,11-11
.. _message-rst-geometry-rotation:
Message Rotation
----------------
.. container:: message-rst-geometry-rotation-multi
.. container:: message-rst-geometry-rotation-documentation
.. py:class:: rst.geometry.Rotation
Cartesian 3-dimensional rotatory displacement or orientation.
The displacement or orientation (orientation being a rotation from
an origin) is in world coordinates and expressed as unit quaternion
(all-zero quaternion denotes an invalid orientation/rotation).
.. codeauthor:: Arne Nordmann
.. py:attribute:: qw
:type: :py:class:`FLOAT64`
TODO
.. py:attribute:: qx
:type: :py:class:`FLOAT64`
TODO
.. py:attribute:: qy
:type: :py:class:`FLOAT64`
TODO
.. py:attribute:: qz
:type: :py:class:`FLOAT64`
TODO
.. py:attribute:: frame_id
:type: :py:class:`ASCII-STRING`
Identifier for the coordinate frame of the rotation.
.. container:: message-rst-geometry-rotation-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/Rotation.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/Rotation.proto
:lines: 14-40
:language: protobuf
:emphasize-lines: 6-6,11-11,16-16,21-21,26-26
.. _message-rst-geometry-translation:
Message Translation
-------------------
.. container:: message-rst-geometry-translation-multi
.. container:: message-rst-geometry-translation-documentation
.. py:class:: rst.geometry.Translation
Cartesian 3-dimensional translatory displacement or position.
The displacement or position (position being translation from an
origin) is expressed in world coordinates.
.. codeauthor:: Arne Nordmann
.. py:attribute:: x
:type: :py:class:`FLOAT64`
**Unit**: meter
Cartesian displacement along the x axis
.. py:attribute:: y
:type: :py:class:`FLOAT64`
**Unit**: meter
Cartesian displacement along the y axis
.. py:attribute:: z
:type: :py:class:`FLOAT64`
**Unit**: meter
Cartesian displacement along the z axis
.. py:attribute:: frame_id
:type: :py:class:`ASCII-STRING`
Identifier for the coordinate frame of the rotation.
.. container:: message-rst-geometry-translation-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/Translation.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.11-merge-simulator/rst-manual/../rst-proto/proto/stable/rst/geometry/Translation.proto
:lines: 13-37
:language: protobuf
:emphasize-lines: 7-7,13-13,19-19,24-24