00001 """autogenerated by genpy from jsk_perception/EuclideanSegmentRequest.msg. Do not edit."""
00002 import sys
00003 python3 = True if sys.hexversion > 0x03000000 else False
00004 import genpy
00005 import struct
00006
00007 import std_msgs.msg
00008 import sensor_msgs.msg
00009
00010 class EuclideanSegmentRequest(genpy.Message):
00011 _md5sum = "116dd66bdc82f46d7b7414ce880ea794"
00012 _type = "jsk_perception/EuclideanSegmentRequest"
00013 _has_header = False
00014 _full_text = """sensor_msgs/PointCloud2 input
00015 float32 tolerance
00016
00017 ================================================================================
00018 MSG: sensor_msgs/PointCloud2
00019 # This message holds a collection of N-dimensional points, which may
00020 # contain additional information such as normals, intensity, etc. The
00021 # point data is stored as a binary blob, its layout described by the
00022 # contents of the "fields" array.
00023
00024 # The point cloud data may be organized 2d (image-like) or 1d
00025 # (unordered). Point clouds organized as 2d images may be produced by
00026 # camera depth sensors such as stereo or time-of-flight.
00027
00028 # Time of sensor data acquisition, and the coordinate frame ID (for 3d
00029 # points).
00030 Header header
00031
00032 # 2D structure of the point cloud. If the cloud is unordered, height is
00033 # 1 and width is the length of the point cloud.
00034 uint32 height
00035 uint32 width
00036
00037 # Describes the channels and their layout in the binary data blob.
00038 PointField[] fields
00039
00040 bool is_bigendian # Is this data bigendian?
00041 uint32 point_step # Length of a point in bytes
00042 uint32 row_step # Length of a row in bytes
00043 uint8[] data # Actual point data, size is (row_step*height)
00044
00045 bool is_dense # True if there are no invalid points
00046
00047 ================================================================================
00048 MSG: std_msgs/Header
00049 # Standard metadata for higher-level stamped data types.
00050 # This is generally used to communicate timestamped data
00051 # in a particular coordinate frame.
00052 #
00053 # sequence ID: consecutively increasing ID
00054 uint32 seq
00055 #Two-integer timestamp that is expressed as:
00056 # * stamp.secs: seconds (stamp_secs) since epoch
00057 # * stamp.nsecs: nanoseconds since stamp_secs
00058 # time-handling sugar is provided by the client library
00059 time stamp
00060 #Frame this data is associated with
00061 # 0: no frame
00062 # 1: global frame
00063 string frame_id
00064
00065 ================================================================================
00066 MSG: sensor_msgs/PointField
00067 # This message holds the description of one point entry in the
00068 # PointCloud2 message format.
00069 uint8 INT8 = 1
00070 uint8 UINT8 = 2
00071 uint8 INT16 = 3
00072 uint8 UINT16 = 4
00073 uint8 INT32 = 5
00074 uint8 UINT32 = 6
00075 uint8 FLOAT32 = 7
00076 uint8 FLOAT64 = 8
00077
00078 string name # Name of field
00079 uint32 offset # Offset from start of point struct
00080 uint8 datatype # Datatype enumeration, see above
00081 uint32 count # How many elements in the field
00082
00083 """
00084 __slots__ = ['input','tolerance']
00085 _slot_types = ['sensor_msgs/PointCloud2','float32']
00086
00087 def __init__(self, *args, **kwds):
00088 """
00089 Constructor. Any message fields that are implicitly/explicitly
00090 set to None will be assigned a default value. The recommend
00091 use is keyword arguments as this is more robust to future message
00092 changes. You cannot mix in-order arguments and keyword arguments.
00093
00094 The available fields are:
00095 input,tolerance
00096
00097 :param args: complete set of field values, in .msg order
00098 :param kwds: use keyword arguments corresponding to message field names
00099 to set specific fields.
00100 """
00101 if args or kwds:
00102 super(EuclideanSegmentRequest, self).__init__(*args, **kwds)
00103
00104 if self.input is None:
00105 self.input = sensor_msgs.msg.PointCloud2()
00106 if self.tolerance is None:
00107 self.tolerance = 0.
00108 else:
00109 self.input = sensor_msgs.msg.PointCloud2()
00110 self.tolerance = 0.
00111
00112 def _get_types(self):
00113 """
00114 internal API method
00115 """
00116 return self._slot_types
00117
00118 def serialize(self, buff):
00119 """
00120 serialize message into buffer
00121 :param buff: buffer, ``StringIO``
00122 """
00123 try:
00124 _x = self
00125 buff.write(_struct_3I.pack(_x.input.header.seq, _x.input.header.stamp.secs, _x.input.header.stamp.nsecs))
00126 _x = self.input.header.frame_id
00127 length = len(_x)
00128 if python3 or type(_x) == unicode:
00129 _x = _x.encode('utf-8')
00130 length = len(_x)
00131 buff.write(struct.pack('<I%ss'%length, length, _x))
00132 _x = self
00133 buff.write(_struct_2I.pack(_x.input.height, _x.input.width))
00134 length = len(self.input.fields)
00135 buff.write(_struct_I.pack(length))
00136 for val1 in self.input.fields:
00137 _x = val1.name
00138 length = len(_x)
00139 if python3 or type(_x) == unicode:
00140 _x = _x.encode('utf-8')
00141 length = len(_x)
00142 buff.write(struct.pack('<I%ss'%length, length, _x))
00143 _x = val1
00144 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00145 _x = self
00146 buff.write(_struct_B2I.pack(_x.input.is_bigendian, _x.input.point_step, _x.input.row_step))
00147 _x = self.input.data
00148 length = len(_x)
00149
00150 if type(_x) in [list, tuple]:
00151 buff.write(struct.pack('<I%sB'%length, length, *_x))
00152 else:
00153 buff.write(struct.pack('<I%ss'%length, length, _x))
00154 _x = self
00155 buff.write(_struct_Bf.pack(_x.input.is_dense, _x.tolerance))
00156 except struct.error as se: self._check_types(se)
00157 except TypeError as te: self._check_types(te)
00158
00159 def deserialize(self, str):
00160 """
00161 unpack serialized message in str into this message instance
00162 :param str: byte array of serialized message, ``str``
00163 """
00164 try:
00165 if self.input is None:
00166 self.input = sensor_msgs.msg.PointCloud2()
00167 end = 0
00168 _x = self
00169 start = end
00170 end += 12
00171 (_x.input.header.seq, _x.input.header.stamp.secs, _x.input.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00172 start = end
00173 end += 4
00174 (length,) = _struct_I.unpack(str[start:end])
00175 start = end
00176 end += length
00177 if python3:
00178 self.input.header.frame_id = str[start:end].decode('utf-8')
00179 else:
00180 self.input.header.frame_id = str[start:end]
00181 _x = self
00182 start = end
00183 end += 8
00184 (_x.input.height, _x.input.width,) = _struct_2I.unpack(str[start:end])
00185 start = end
00186 end += 4
00187 (length,) = _struct_I.unpack(str[start:end])
00188 self.input.fields = []
00189 for i in range(0, length):
00190 val1 = sensor_msgs.msg.PointField()
00191 start = end
00192 end += 4
00193 (length,) = _struct_I.unpack(str[start:end])
00194 start = end
00195 end += length
00196 if python3:
00197 val1.name = str[start:end].decode('utf-8')
00198 else:
00199 val1.name = str[start:end]
00200 _x = val1
00201 start = end
00202 end += 9
00203 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
00204 self.input.fields.append(val1)
00205 _x = self
00206 start = end
00207 end += 9
00208 (_x.input.is_bigendian, _x.input.point_step, _x.input.row_step,) = _struct_B2I.unpack(str[start:end])
00209 self.input.is_bigendian = bool(self.input.is_bigendian)
00210 start = end
00211 end += 4
00212 (length,) = _struct_I.unpack(str[start:end])
00213 start = end
00214 end += length
00215 if python3:
00216 self.input.data = str[start:end].decode('utf-8')
00217 else:
00218 self.input.data = str[start:end]
00219 _x = self
00220 start = end
00221 end += 5
00222 (_x.input.is_dense, _x.tolerance,) = _struct_Bf.unpack(str[start:end])
00223 self.input.is_dense = bool(self.input.is_dense)
00224 return self
00225 except struct.error as e:
00226 raise genpy.DeserializationError(e)
00227
00228
00229 def serialize_numpy(self, buff, numpy):
00230 """
00231 serialize message with numpy array types into buffer
00232 :param buff: buffer, ``StringIO``
00233 :param numpy: numpy python module
00234 """
00235 try:
00236 _x = self
00237 buff.write(_struct_3I.pack(_x.input.header.seq, _x.input.header.stamp.secs, _x.input.header.stamp.nsecs))
00238 _x = self.input.header.frame_id
00239 length = len(_x)
00240 if python3 or type(_x) == unicode:
00241 _x = _x.encode('utf-8')
00242 length = len(_x)
00243 buff.write(struct.pack('<I%ss'%length, length, _x))
00244 _x = self
00245 buff.write(_struct_2I.pack(_x.input.height, _x.input.width))
00246 length = len(self.input.fields)
00247 buff.write(_struct_I.pack(length))
00248 for val1 in self.input.fields:
00249 _x = val1.name
00250 length = len(_x)
00251 if python3 or type(_x) == unicode:
00252 _x = _x.encode('utf-8')
00253 length = len(_x)
00254 buff.write(struct.pack('<I%ss'%length, length, _x))
00255 _x = val1
00256 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00257 _x = self
00258 buff.write(_struct_B2I.pack(_x.input.is_bigendian, _x.input.point_step, _x.input.row_step))
00259 _x = self.input.data
00260 length = len(_x)
00261
00262 if type(_x) in [list, tuple]:
00263 buff.write(struct.pack('<I%sB'%length, length, *_x))
00264 else:
00265 buff.write(struct.pack('<I%ss'%length, length, _x))
00266 _x = self
00267 buff.write(_struct_Bf.pack(_x.input.is_dense, _x.tolerance))
00268 except struct.error as se: self._check_types(se)
00269 except TypeError as te: self._check_types(te)
00270
00271 def deserialize_numpy(self, str, numpy):
00272 """
00273 unpack serialized message in str into this message instance using numpy for array types
00274 :param str: byte array of serialized message, ``str``
00275 :param numpy: numpy python module
00276 """
00277 try:
00278 if self.input is None:
00279 self.input = sensor_msgs.msg.PointCloud2()
00280 end = 0
00281 _x = self
00282 start = end
00283 end += 12
00284 (_x.input.header.seq, _x.input.header.stamp.secs, _x.input.header.stamp.nsecs,) = _struct_3I.unpack(str[start:end])
00285 start = end
00286 end += 4
00287 (length,) = _struct_I.unpack(str[start:end])
00288 start = end
00289 end += length
00290 if python3:
00291 self.input.header.frame_id = str[start:end].decode('utf-8')
00292 else:
00293 self.input.header.frame_id = str[start:end]
00294 _x = self
00295 start = end
00296 end += 8
00297 (_x.input.height, _x.input.width,) = _struct_2I.unpack(str[start:end])
00298 start = end
00299 end += 4
00300 (length,) = _struct_I.unpack(str[start:end])
00301 self.input.fields = []
00302 for i in range(0, length):
00303 val1 = sensor_msgs.msg.PointField()
00304 start = end
00305 end += 4
00306 (length,) = _struct_I.unpack(str[start:end])
00307 start = end
00308 end += length
00309 if python3:
00310 val1.name = str[start:end].decode('utf-8')
00311 else:
00312 val1.name = str[start:end]
00313 _x = val1
00314 start = end
00315 end += 9
00316 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
00317 self.input.fields.append(val1)
00318 _x = self
00319 start = end
00320 end += 9
00321 (_x.input.is_bigendian, _x.input.point_step, _x.input.row_step,) = _struct_B2I.unpack(str[start:end])
00322 self.input.is_bigendian = bool(self.input.is_bigendian)
00323 start = end
00324 end += 4
00325 (length,) = _struct_I.unpack(str[start:end])
00326 start = end
00327 end += length
00328 if python3:
00329 self.input.data = str[start:end].decode('utf-8')
00330 else:
00331 self.input.data = str[start:end]
00332 _x = self
00333 start = end
00334 end += 5
00335 (_x.input.is_dense, _x.tolerance,) = _struct_Bf.unpack(str[start:end])
00336 self.input.is_dense = bool(self.input.is_dense)
00337 return self
00338 except struct.error as e:
00339 raise genpy.DeserializationError(e)
00340
00341 _struct_I = genpy.struct_I
00342 _struct_IBI = struct.Struct("<IBI")
00343 _struct_3I = struct.Struct("<3I")
00344 _struct_Bf = struct.Struct("<Bf")
00345 _struct_2I = struct.Struct("<2I")
00346 _struct_B2I = struct.Struct("<B2I")
00347 """autogenerated by genpy from jsk_perception/EuclideanSegmentResponse.msg. Do not edit."""
00348 import sys
00349 python3 = True if sys.hexversion > 0x03000000 else False
00350 import genpy
00351 import struct
00352
00353 import std_msgs.msg
00354 import sensor_msgs.msg
00355
00356 class EuclideanSegmentResponse(genpy.Message):
00357 _md5sum = "6db5ac8d8316fdb3e0c62197115f87cd"
00358 _type = "jsk_perception/EuclideanSegmentResponse"
00359 _has_header = False
00360 _full_text = """sensor_msgs/PointCloud2[] output
00361
00362
00363 ================================================================================
00364 MSG: sensor_msgs/PointCloud2
00365 # This message holds a collection of N-dimensional points, which may
00366 # contain additional information such as normals, intensity, etc. The
00367 # point data is stored as a binary blob, its layout described by the
00368 # contents of the "fields" array.
00369
00370 # The point cloud data may be organized 2d (image-like) or 1d
00371 # (unordered). Point clouds organized as 2d images may be produced by
00372 # camera depth sensors such as stereo or time-of-flight.
00373
00374 # Time of sensor data acquisition, and the coordinate frame ID (for 3d
00375 # points).
00376 Header header
00377
00378 # 2D structure of the point cloud. If the cloud is unordered, height is
00379 # 1 and width is the length of the point cloud.
00380 uint32 height
00381 uint32 width
00382
00383 # Describes the channels and their layout in the binary data blob.
00384 PointField[] fields
00385
00386 bool is_bigendian # Is this data bigendian?
00387 uint32 point_step # Length of a point in bytes
00388 uint32 row_step # Length of a row in bytes
00389 uint8[] data # Actual point data, size is (row_step*height)
00390
00391 bool is_dense # True if there are no invalid points
00392
00393 ================================================================================
00394 MSG: std_msgs/Header
00395 # Standard metadata for higher-level stamped data types.
00396 # This is generally used to communicate timestamped data
00397 # in a particular coordinate frame.
00398 #
00399 # sequence ID: consecutively increasing ID
00400 uint32 seq
00401 #Two-integer timestamp that is expressed as:
00402 # * stamp.secs: seconds (stamp_secs) since epoch
00403 # * stamp.nsecs: nanoseconds since stamp_secs
00404 # time-handling sugar is provided by the client library
00405 time stamp
00406 #Frame this data is associated with
00407 # 0: no frame
00408 # 1: global frame
00409 string frame_id
00410
00411 ================================================================================
00412 MSG: sensor_msgs/PointField
00413 # This message holds the description of one point entry in the
00414 # PointCloud2 message format.
00415 uint8 INT8 = 1
00416 uint8 UINT8 = 2
00417 uint8 INT16 = 3
00418 uint8 UINT16 = 4
00419 uint8 INT32 = 5
00420 uint8 UINT32 = 6
00421 uint8 FLOAT32 = 7
00422 uint8 FLOAT64 = 8
00423
00424 string name # Name of field
00425 uint32 offset # Offset from start of point struct
00426 uint8 datatype # Datatype enumeration, see above
00427 uint32 count # How many elements in the field
00428
00429 """
00430 __slots__ = ['output']
00431 _slot_types = ['sensor_msgs/PointCloud2[]']
00432
00433 def __init__(self, *args, **kwds):
00434 """
00435 Constructor. Any message fields that are implicitly/explicitly
00436 set to None will be assigned a default value. The recommend
00437 use is keyword arguments as this is more robust to future message
00438 changes. You cannot mix in-order arguments and keyword arguments.
00439
00440 The available fields are:
00441 output
00442
00443 :param args: complete set of field values, in .msg order
00444 :param kwds: use keyword arguments corresponding to message field names
00445 to set specific fields.
00446 """
00447 if args or kwds:
00448 super(EuclideanSegmentResponse, self).__init__(*args, **kwds)
00449
00450 if self.output is None:
00451 self.output = []
00452 else:
00453 self.output = []
00454
00455 def _get_types(self):
00456 """
00457 internal API method
00458 """
00459 return self._slot_types
00460
00461 def serialize(self, buff):
00462 """
00463 serialize message into buffer
00464 :param buff: buffer, ``StringIO``
00465 """
00466 try:
00467 length = len(self.output)
00468 buff.write(_struct_I.pack(length))
00469 for val1 in self.output:
00470 _v1 = val1.header
00471 buff.write(_struct_I.pack(_v1.seq))
00472 _v2 = _v1.stamp
00473 _x = _v2
00474 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00475 _x = _v1.frame_id
00476 length = len(_x)
00477 if python3 or type(_x) == unicode:
00478 _x = _x.encode('utf-8')
00479 length = len(_x)
00480 buff.write(struct.pack('<I%ss'%length, length, _x))
00481 _x = val1
00482 buff.write(_struct_2I.pack(_x.height, _x.width))
00483 length = len(val1.fields)
00484 buff.write(_struct_I.pack(length))
00485 for val2 in val1.fields:
00486 _x = val2.name
00487 length = len(_x)
00488 if python3 or type(_x) == unicode:
00489 _x = _x.encode('utf-8')
00490 length = len(_x)
00491 buff.write(struct.pack('<I%ss'%length, length, _x))
00492 _x = val2
00493 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00494 _x = val1
00495 buff.write(_struct_B2I.pack(_x.is_bigendian, _x.point_step, _x.row_step))
00496 _x = val1.data
00497 length = len(_x)
00498
00499 if type(_x) in [list, tuple]:
00500 buff.write(struct.pack('<I%sB'%length, length, *_x))
00501 else:
00502 buff.write(struct.pack('<I%ss'%length, length, _x))
00503 buff.write(_struct_B.pack(val1.is_dense))
00504 except struct.error as se: self._check_types(se)
00505 except TypeError as te: self._check_types(te)
00506
00507 def deserialize(self, str):
00508 """
00509 unpack serialized message in str into this message instance
00510 :param str: byte array of serialized message, ``str``
00511 """
00512 try:
00513 if self.output is None:
00514 self.output = None
00515 end = 0
00516 start = end
00517 end += 4
00518 (length,) = _struct_I.unpack(str[start:end])
00519 self.output = []
00520 for i in range(0, length):
00521 val1 = sensor_msgs.msg.PointCloud2()
00522 _v3 = val1.header
00523 start = end
00524 end += 4
00525 (_v3.seq,) = _struct_I.unpack(str[start:end])
00526 _v4 = _v3.stamp
00527 _x = _v4
00528 start = end
00529 end += 8
00530 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00531 start = end
00532 end += 4
00533 (length,) = _struct_I.unpack(str[start:end])
00534 start = end
00535 end += length
00536 if python3:
00537 _v3.frame_id = str[start:end].decode('utf-8')
00538 else:
00539 _v3.frame_id = str[start:end]
00540 _x = val1
00541 start = end
00542 end += 8
00543 (_x.height, _x.width,) = _struct_2I.unpack(str[start:end])
00544 start = end
00545 end += 4
00546 (length,) = _struct_I.unpack(str[start:end])
00547 val1.fields = []
00548 for i in range(0, length):
00549 val2 = sensor_msgs.msg.PointField()
00550 start = end
00551 end += 4
00552 (length,) = _struct_I.unpack(str[start:end])
00553 start = end
00554 end += length
00555 if python3:
00556 val2.name = str[start:end].decode('utf-8')
00557 else:
00558 val2.name = str[start:end]
00559 _x = val2
00560 start = end
00561 end += 9
00562 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
00563 val1.fields.append(val2)
00564 _x = val1
00565 start = end
00566 end += 9
00567 (_x.is_bigendian, _x.point_step, _x.row_step,) = _struct_B2I.unpack(str[start:end])
00568 val1.is_bigendian = bool(val1.is_bigendian)
00569 start = end
00570 end += 4
00571 (length,) = _struct_I.unpack(str[start:end])
00572 start = end
00573 end += length
00574 if python3:
00575 val1.data = str[start:end].decode('utf-8')
00576 else:
00577 val1.data = str[start:end]
00578 start = end
00579 end += 1
00580 (val1.is_dense,) = _struct_B.unpack(str[start:end])
00581 val1.is_dense = bool(val1.is_dense)
00582 self.output.append(val1)
00583 return self
00584 except struct.error as e:
00585 raise genpy.DeserializationError(e)
00586
00587
00588 def serialize_numpy(self, buff, numpy):
00589 """
00590 serialize message with numpy array types into buffer
00591 :param buff: buffer, ``StringIO``
00592 :param numpy: numpy python module
00593 """
00594 try:
00595 length = len(self.output)
00596 buff.write(_struct_I.pack(length))
00597 for val1 in self.output:
00598 _v5 = val1.header
00599 buff.write(_struct_I.pack(_v5.seq))
00600 _v6 = _v5.stamp
00601 _x = _v6
00602 buff.write(_struct_2I.pack(_x.secs, _x.nsecs))
00603 _x = _v5.frame_id
00604 length = len(_x)
00605 if python3 or type(_x) == unicode:
00606 _x = _x.encode('utf-8')
00607 length = len(_x)
00608 buff.write(struct.pack('<I%ss'%length, length, _x))
00609 _x = val1
00610 buff.write(_struct_2I.pack(_x.height, _x.width))
00611 length = len(val1.fields)
00612 buff.write(_struct_I.pack(length))
00613 for val2 in val1.fields:
00614 _x = val2.name
00615 length = len(_x)
00616 if python3 or type(_x) == unicode:
00617 _x = _x.encode('utf-8')
00618 length = len(_x)
00619 buff.write(struct.pack('<I%ss'%length, length, _x))
00620 _x = val2
00621 buff.write(_struct_IBI.pack(_x.offset, _x.datatype, _x.count))
00622 _x = val1
00623 buff.write(_struct_B2I.pack(_x.is_bigendian, _x.point_step, _x.row_step))
00624 _x = val1.data
00625 length = len(_x)
00626
00627 if type(_x) in [list, tuple]:
00628 buff.write(struct.pack('<I%sB'%length, length, *_x))
00629 else:
00630 buff.write(struct.pack('<I%ss'%length, length, _x))
00631 buff.write(_struct_B.pack(val1.is_dense))
00632 except struct.error as se: self._check_types(se)
00633 except TypeError as te: self._check_types(te)
00634
00635 def deserialize_numpy(self, str, numpy):
00636 """
00637 unpack serialized message in str into this message instance using numpy for array types
00638 :param str: byte array of serialized message, ``str``
00639 :param numpy: numpy python module
00640 """
00641 try:
00642 if self.output is None:
00643 self.output = None
00644 end = 0
00645 start = end
00646 end += 4
00647 (length,) = _struct_I.unpack(str[start:end])
00648 self.output = []
00649 for i in range(0, length):
00650 val1 = sensor_msgs.msg.PointCloud2()
00651 _v7 = val1.header
00652 start = end
00653 end += 4
00654 (_v7.seq,) = _struct_I.unpack(str[start:end])
00655 _v8 = _v7.stamp
00656 _x = _v8
00657 start = end
00658 end += 8
00659 (_x.secs, _x.nsecs,) = _struct_2I.unpack(str[start:end])
00660 start = end
00661 end += 4
00662 (length,) = _struct_I.unpack(str[start:end])
00663 start = end
00664 end += length
00665 if python3:
00666 _v7.frame_id = str[start:end].decode('utf-8')
00667 else:
00668 _v7.frame_id = str[start:end]
00669 _x = val1
00670 start = end
00671 end += 8
00672 (_x.height, _x.width,) = _struct_2I.unpack(str[start:end])
00673 start = end
00674 end += 4
00675 (length,) = _struct_I.unpack(str[start:end])
00676 val1.fields = []
00677 for i in range(0, length):
00678 val2 = sensor_msgs.msg.PointField()
00679 start = end
00680 end += 4
00681 (length,) = _struct_I.unpack(str[start:end])
00682 start = end
00683 end += length
00684 if python3:
00685 val2.name = str[start:end].decode('utf-8')
00686 else:
00687 val2.name = str[start:end]
00688 _x = val2
00689 start = end
00690 end += 9
00691 (_x.offset, _x.datatype, _x.count,) = _struct_IBI.unpack(str[start:end])
00692 val1.fields.append(val2)
00693 _x = val1
00694 start = end
00695 end += 9
00696 (_x.is_bigendian, _x.point_step, _x.row_step,) = _struct_B2I.unpack(str[start:end])
00697 val1.is_bigendian = bool(val1.is_bigendian)
00698 start = end
00699 end += 4
00700 (length,) = _struct_I.unpack(str[start:end])
00701 start = end
00702 end += length
00703 if python3:
00704 val1.data = str[start:end].decode('utf-8')
00705 else:
00706 val1.data = str[start:end]
00707 start = end
00708 end += 1
00709 (val1.is_dense,) = _struct_B.unpack(str[start:end])
00710 val1.is_dense = bool(val1.is_dense)
00711 self.output.append(val1)
00712 return self
00713 except struct.error as e:
00714 raise genpy.DeserializationError(e)
00715
00716 _struct_I = genpy.struct_I
00717 _struct_IBI = struct.Struct("<IBI")
00718 _struct_B = struct.Struct("<B")
00719 _struct_2I = struct.Struct("<2I")
00720 _struct_B2I = struct.Struct("<B2I")
00721 class EuclideanSegment(object):
00722 _type = 'jsk_perception/EuclideanSegment'
00723 _md5sum = '7210bbdf9078b61fce51942a9f673096'
00724 _request_class = EuclideanSegmentRequest
00725 _response_class = EuclideanSegmentResponse