Skip to content

Commit 0efa027

Browse files
authored
Merge pull request #783 from compas-dev/redraw
Redraw
2 parents f7c9391 + 7f0957c commit 0efa027

File tree

3 files changed

+27
-11
lines changed

3 files changed

+27
-11
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010

1111
### Added
1212
* Added `divide_polyline`, `divide_polyline_by_length`, `Polyline.split_at_corners` and `Polyline.tangent_at_point_on_polyline`.
13-
1413
* Added the magic method `__str__` to `compas.geoemetry.Transformation`.
14+
* Added `redraw` flag to the `compas_rhino` methods `delete_object`, `delete_objects` and `purge_objects`.
1515

1616
### Changed
1717

1818
* Fixed bug where mimic joints were considered configurable.
1919
* Fixed bug where `!=` gave incorrect results in Rhino for some compas objects.
20+
* Fixed bug where `compas_rhino.BaseArtist.redraw` did not trigger a redraw.
2021

2122
### Removed
2223

src/compas_rhino/artists/_artist.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ def draw(self):
5353

5454
def redraw(self):
5555
compas_rhino.rs.EnableRedraw(True)
56+
compas_rhino.rs.Redraw()
5657

5758
def clear(self):
5859
if not self._guids:

src/compas_rhino/utilities/objects.py

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def get_objects(name=None, color=None, layer=None, type=None):
142142
return guids
143143

144144

145-
def delete_object(guid, purge=None):
145+
def delete_object(guid, purge=None, redraw=True):
146146
"""Delete Rhino object.
147147
148148
Parameters
@@ -153,16 +153,20 @@ def delete_object(guid, purge=None):
153153
If True, purge the object from history after deleting.
154154
If False, delete but don't purge.
155155
Default is None.
156+
redraw : bool, optional
157+
If True, redrawing will be enabled and enacted.
158+
If False, redrawing will be disabled.
159+
Default is True.
156160
"""
157161
if purge is None:
158162
purge = compas_rhino.PURGE_ON_DELETE
159163
if purge and purge_object:
160-
purge_objects([guid])
164+
purge_objects([guid], redraw=redraw)
161165
else:
162-
delete_objects([guid], purge)
166+
delete_objects([guid], purge, redraw=redraw)
163167

164168

165-
def delete_objects(guids, purge=None):
169+
def delete_objects(guids, purge=None, redraw=True):
166170
"""Delete multiple Rhino objects.
167171
168172
Parameters
@@ -173,27 +177,36 @@ def delete_objects(guids, purge=None):
173177
If True, purge the objects from history after deleting.
174178
If False, delete but don't purge.
175179
Default is None.
180+
redraw : bool, optional
181+
If True, redrawing will be enabled and enacted.
182+
If False, redrawing will be disabled.
183+
Default is True.
176184
"""
177185
if purge is None:
178186
purge = compas_rhino.PURGE_ON_DELETE
179187
if purge and purge_object:
180-
purge_objects(guids)
188+
purge_objects(guids, redraw=redraw)
181189
else:
182190
rs.EnableRedraw(False)
183191
for guid in guids:
184192
if rs.IsObjectHidden(guid):
185193
rs.ShowObject(guid)
186194
rs.DeleteObjects(guids)
187-
rs.EnableRedraw(True)
188-
sc.doc.Views.Redraw()
195+
if redraw:
196+
rs.EnableRedraw(True)
197+
sc.doc.Views.Redraw()
189198

190199

191-
def purge_objects(guids):
200+
def purge_objects(guids, redraw=True):
192201
"""Purge objects from memory.
193202
194203
Parameters
195204
----------
196205
guids : list of GUID
206+
redraw : bool, optional
207+
If True, redrawing will be enabled and enacted.
208+
If False, redrawing will be disabled.
209+
Default is True.
197210
"""
198211
if not purge_object:
199212
raise RuntimeError('Cannot purge outside Rhino script context')
@@ -204,8 +217,9 @@ def purge_objects(guids):
204217
rs.ShowObject(guid)
205218
o = find_object(guid)
206219
purge_object(o.RuntimeSerialNumber)
207-
rs.EnableRedraw(True)
208-
sc.doc.Views.Redraw()
220+
if redraw:
221+
rs.EnableRedraw(True)
222+
sc.doc.Views.Redraw()
209223

210224

211225
def get_object_layers(guids):

0 commit comments

Comments
 (0)