Skip to content

Commit d311de3

Browse files
authored
Merge pull request #249 from orioncohen/tiling
Add a lattice parameter to Scene
2 parents 30b27a3 + 3fd34ee commit d311de3

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

crystal_toolkit/core/scene.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class Scene:
4646
contents: list = field(default_factory=list)
4747
origin: List[float] = field(default=(0, 0, 0))
4848
visible: bool = True
49+
lattice: Optional[List[List[float]]] = None
4950
_meta: Dict = None
5051

5152
def __add__(self, other):
@@ -62,6 +63,7 @@ def __add__(self, other):
6263
contents=self.contents + other.contents,
6364
origin=self.origin,
6465
visible=self.visible,
66+
lattice=self.lattice,
6567
_meta={self.name: self._meta, other.name: other._meta},
6668
)
6769

@@ -92,6 +94,7 @@ def to_json(self):
9294
name=self.name,
9395
contents=self.merge_primitives(self.contents),
9496
origin=self.origin,
97+
lattice=self.lattice,
9598
)
9699

97100
def remove_defaults(scene_dict):

crystal_toolkit/core/tests/test_legend.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,10 @@ def test_msonable(self):
171171
legend_from_dict = Legend.from_dict(legend_dict)
172172

173173
assert legend.get_legend() == legend_from_dict.get_legend()
174+
175+
def test_get_tiling(self):
176+
scene = self.struct.get_scene()
177+
assert hasattr(scene, 'lattice')
178+
assert scene.lattice == [[5.0, 0, 0],
179+
[0, 5.0, 0],
180+
[0, 0, 5.0]]

crystal_toolkit/renderables/structure.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,18 @@ def get_structure_scene(
9595
site.lattice,
9696
properties=site.properties,
9797
)
98-
9998
site_scene = site.get_scene(legend=legend,)
10099
for scene in site_scene.contents:
101100
primitives[scene.name] += scene.contents
102101

103102
primitives["unit_cell"].append(self.lattice.get_scene())
104103

104+
lattice_vectors = self.lattice.matrix.tolist()
105+
105106
return Scene(
106107
name="Structure",
107108
origin=origin,
109+
lattice=lattice_vectors,
108110
contents=[
109111
Scene(name=k, contents=v, origin=origin) for k, v in primitives.items()
110112
],

0 commit comments

Comments
 (0)