From a6bc88ca17dd81fd9de7c0a4fb090296782aad64 Mon Sep 17 00:00:00 2001 From: Leon Ziegler Date: Tue, 31 Mar 2015 15:20:47 +0200 Subject: [PATCH] Added new type PlanePatch to sandbox. --- proto/sandbox/rst/geometry/PlanePatch.proto | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 proto/sandbox/rst/geometry/PlanePatch.proto diff --git a/proto/sandbox/rst/geometry/PlanePatch.proto b/proto/sandbox/rst/geometry/PlanePatch.proto new file mode 100644 index 0000000..f4117ea --- /dev/null +++ b/proto/sandbox/rst/geometry/PlanePatch.proto @@ -0,0 +1,34 @@ +package rst.geometry; + +option java_outer_classname = "PlanePatchType"; + +import "rst/geometry/Pose.proto"; +import "rst/geometry/PointCloud2DInt.proto"; + +/** + * Defines a bounded plane patch in 3D space. + * In contrast to other definitions for regular planes (with infinite extend) + * this kind of bounded patch needs a local coodinate 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 or describing the location of the + * plane. We define that the x-y axes of the resulting CS span the plane. + * Accordingly, the z axis represents the normal on the plane. + * The patch borders are represented by a 2D polygon defined by the + * PointCloud2DInt type. 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. + * + * @author Leon Ziegler + */ +message PlanePatch { + + /** + * The 6D transformation defining the infinite plane (x-y axes span plane). + */ + required Pose plane = 1; + + /** + * The 2D polygon defining the borders of the patch. + */ + required PointCloud2DInt polygon = 2; +} -- 1.9.1