30 #include <OgreSceneNode.h>
31 #include <OgreSceneManager.h>
77 sensor_msgs::PointCloud2Ptr filtered(
new sensor_msgs::PointCloud2);
80 sensor_msgs::PointField x;
83 x.datatype = sensor_msgs::PointField::FLOAT32;
85 sensor_msgs::PointField y;
88 y.datatype = sensor_msgs::PointField::FLOAT32;
90 sensor_msgs::PointField z;
93 z.datatype = sensor_msgs::PointField::FLOAT32;
95 sensor_msgs::PointField fluid_pressure;
96 fluid_pressure.name =
"fluid_pressure";
97 fluid_pressure.offset = 12;
98 fluid_pressure.datatype = sensor_msgs::PointField::FLOAT64;
99 fluid_pressure.count = 1;
102 filtered->header = msg->header;
103 filtered->fields.push_back(x);
104 filtered->fields.push_back(y);
105 filtered->fields.push_back(z);
106 filtered->fields.push_back(fluid_pressure);
107 filtered->data.resize(20);
108 const float zero_float = 0.0;
109 memcpy(&filtered->data[x.offset], &zero_float, 4);
110 memcpy(&filtered->data[y.offset], &zero_float, 4);
111 memcpy(&filtered->data[z.offset], &zero_float, 4);
112 memcpy(&filtered->data[fluid_pressure.offset], &msg->fluid_pressure, 8);
113 filtered->height = 1;
115 filtered->is_bigendian =
false;
116 filtered->point_step = 20;
117 filtered->row_step = 1;