Skip to content

Commit

Permalink
Update hemisphere slicing (#375)
Browse files Browse the repository at this point in the history
* Changed the way the midpoint is calculated from center of mass to center of bounding box

* Added check for symmetrical atlas
  • Loading branch information
IgorTatarnikov authored Aug 16, 2024
1 parent 9cd07c8 commit 242dad8
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions brainrender/scene.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,16 +287,17 @@ def add_brain_region(
actors = self.add(*regions)

# slice to keep only one hemisphere
if hemisphere == "right":
plane = self.atlas.get_plane(
pos=self.root._mesh.center_of_mass(), norm=(0, 0, 1)
)
elif hemisphere == "left":
plane = self.atlas.get_plane(
pos=self.root._mesh.center_of_mass(), norm=(0, 0, -1)
)

if hemisphere in ("left", "right"):
if self.atlas.metadata["symmetric"]:
mesh_center = (
self.root._mesh.bounds().reshape((3, 2)).mean(axis=1)
)
else:
mesh_center = self.root._mesh.center_of_mass()

normal = (0, 0, 1) if hemisphere == "right" else (0, 0, -1)
plane = self.atlas.get_plane(pos=mesh_center, norm=normal)

if not isinstance(actors, list):
actors._mesh.cut_with_plane(
origin=plane.center,
Expand Down

0 comments on commit 242dad8

Please sign in to comment.