Complete XYZAC LinuxCNC WASM parity and smooth 3D preview
This commit is contained in:
@@ -117,7 +117,13 @@ int sim_posemath_segment_validate(const sim_posemath_segment *segment) {
|
||||
if (segment->velocity < 0.0 || segment->acceleration < 0.0 || segment->velocity > 1e9 || segment->acceleration > 1e12) return SIM_POSEMATH_ERR_RANGE;
|
||||
length_sq = (segment->end.tran.x - segment->start.tran.x) * (segment->end.tran.x - segment->start.tran.x) +
|
||||
(segment->end.tran.y - segment->start.tran.y) * (segment->end.tran.y - segment->start.tran.y) +
|
||||
(segment->end.tran.z - segment->start.tran.z) * (segment->end.tran.z - segment->start.tran.z);
|
||||
(segment->end.tran.z - segment->start.tran.z) * (segment->end.tran.z - segment->start.tran.z) +
|
||||
(segment->end.a - segment->start.a) * (segment->end.a - segment->start.a) +
|
||||
(segment->end.b - segment->start.b) * (segment->end.b - segment->start.b) +
|
||||
(segment->end.c - segment->start.c) * (segment->end.c - segment->start.c) +
|
||||
(segment->end.u - segment->start.u) * (segment->end.u - segment->start.u) +
|
||||
(segment->end.v - segment->start.v) * (segment->end.v - segment->start.v) +
|
||||
(segment->end.w - segment->start.w) * (segment->end.w - segment->start.w);
|
||||
if (!isfinite(length_sq) || (length_sq <= 1e-24 && segment->motion_type != SIM_POSEMATH_CIRCULAR)) return SIM_POSEMATH_ERR_DEGENERATE;
|
||||
if (segment->motion_type == SIM_POSEMATH_CIRCULAR) {
|
||||
normal_sq = segment->normal.x * segment->normal.x + segment->normal.y * segment->normal.y + segment->normal.z * segment->normal.z;
|
||||
|
||||
Reference in New Issue
Block a user