Tong Fu (8630585f) at 29 Mar 06:20
[feat] Extract clusters on motion points
This filter can be used to send vtkDataSet data over network with the udp protocol. The data sent will follow this format:
* ===== PAYLOAD HEADER =====
* header_size: uint16_t
* is_big_endian: bool
* data_type_size: uint8_t
* number_of_arrays: uint8_t
* | array_name_size: uint8_t
* | array_name: string
* | array_number_of_components: uint8_t
* number_of_points: uint8_t
* end_of_header_bytes: 0x28 0x2a
*
* ===== PAYLOAD DATA =====
* | point: 3 * float
* | point_data_array: n * float
*
* ===== PAYLOAD FOOTER =====
* packet_size: uint16_t
* end_of_payload: 0x2a 0x2c
* null_bytes
Major changes in vtkLidarReader:
Major vtkLidarInterpreter API changes:
No, the end of the last frame is not in the vector, the last frame duration is: lastNetworkTime - vector.end()
.
In the following graph you have 5 frames, and the vector timesteps are represented here by their indexes number. If you want to caluculate the duration mean time for all "complete" frame, you'll need to do take iterators between vector[1]
and vector[4]
, as the vector time represent the beginning of a frame (and so the end of the previous frame).
|_|______|______|______|___|
^ ^ ^ ^ ^
0 1 2 3 4
I assume, we are supposed to skip last frame here to have a mirror beavior with the beginning, so shouldn't that be (timesteps.cend() - sampleSize -1) ?
oh, nevermind, wrong grep on my side
It is used in the above condition
Do we have any use for this variable ?
Does class Gaussian
and class GaussianMixture
really needs to be exposed in header? If not could it be only internal in an empty namespace? And I think Gaussian
could be a struct in this case, as the setter/getter don't do much.
Could you add a vtk or paraview UI test?
vtkMotionDetector::~vtkMotionDetector() = default;
Would be possible to do the condition based on the array available instead of user input? (You can also use the field data Vendor
)
case LidarVendor::LIVOX:
case LidarVendor::HESAI:
{
double r = polydata->GetPointData()->GetArray("distance_m")->GetTuple1(k);
double theta = std::atan2(point[1], point[0]);
double phi = std::acos(point[2] / r);
sphericalPoint << r, theta, phi;
break;
}
Tong Fu (023db830) at 27 Mar 05:14
[feat] Compute spherical coordinate according to the lidar
... and 4 more commits
Tong Fu (c181d089) at 27 Mar 04:49
[feat] Compute spherical coordinate according to the lidar
... and 4 more commits
Timothée Couble (16889726) at 22 Mar 12:32
[feat] Add an udp point sender filter
... and 3 more commits