Skip to content

Commit b5bace0

Browse files
refactor(blender): stabilize naming sync and decouple translator architecture
- Implemented two-tier deferred renaming (timers for GUI, queue for background). - Decoupled platform adapters into a registry-based Translator pattern. - Resolved asynchronous naming inconsistencies and race conditions in CI/CD. - Professionalized error handling and type safety across blender platform. - Maintained 100% test pass rate across 170+ unit and integration tests. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
1 parent 082bb02 commit b5bace0

19 files changed

Lines changed: 1148 additions & 659 deletions

File tree

core/src/linkforge_core/composer/link_builder.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,49 @@ def prismatic(
363363
)
364364
return self._configure_joint(name, xyz, rpy)
365365

366+
def floating(
367+
self,
368+
name: str | None = None,
369+
xyz: tuple[float, float, float] | None = None,
370+
rpy: tuple[float, float, float] | None = None,
371+
) -> LinkBuilder:
372+
"""Configure the connection as a FLOATING (6 DOF) joint.
373+
374+
Args:
375+
name: Unique joint name.
376+
xyz: Joint origin translation.
377+
rpy: Joint origin rotation.
378+
379+
Returns:
380+
The LinkBuilder instance.
381+
"""
382+
self._check_not_committed()
383+
self._joint.type = JointType.FLOATING
384+
return self._configure_joint(name, xyz, rpy)
385+
386+
def planar(
387+
self,
388+
axis: tuple[float, float, float],
389+
name: str | None = None,
390+
xyz: tuple[float, float, float] | None = None,
391+
rpy: tuple[float, float, float] | None = None,
392+
) -> LinkBuilder:
393+
"""Configure the connection as a PLANAR joint.
394+
395+
Args:
396+
axis: Plane normal unit vector.
397+
name: Unique joint name.
398+
xyz: Joint origin translation.
399+
rpy: Joint origin rotation.
400+
401+
Returns:
402+
The LinkBuilder instance.
403+
"""
404+
self._check_not_committed()
405+
self._joint.type = JointType.PLANAR
406+
self._joint.axis = self._normalize_axis(axis)
407+
return self._configure_joint(name, xyz, rpy)
408+
366409
def dynamics(self, damping: float = 0.0, friction: float = 0.0) -> LinkBuilder:
367410
"""Set the physical dynamics for the joint.
368411

0 commit comments

Comments
 (0)