Skip to content

Commit

Permalink
Add tree transform cache
Browse files Browse the repository at this point in the history
  • Loading branch information
flferretti committed Apr 26, 2024
1 parent 04b61a4 commit 046264e
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/rod/kinematics/tree_transforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
@dataclasses.dataclass
class TreeTransforms:
kinematic_tree: KinematicTree = dataclasses.dataclass(init=False)
_transform_cache: dict[str, npt.NDArray] = dataclasses.field(default_factory=dict)

@staticmethod
def build(
Expand All @@ -33,6 +34,13 @@ def build(
)

def transform(self, name: str) -> npt.NDArray:
if name in self._transform_cache:
return self._transform_cache[name]

self._transform_cache[name] = self._compute_transform(name=name)
return self._transform_cache[name]

def _compute_transform(self, name: str) -> npt.NDArray:
match name:
case TreeFrame.WORLD:
return np.eye(4)
Expand Down

0 comments on commit 046264e

Please sign in to comment.