BaseFeature: add dereferencing to getPlacementsList
This commit is contained in:
parent
e4c342f5ba
commit
f7bbd41b2c
|
@ -510,7 +510,7 @@ def makeMoveFromTo(plmFrom, plmTo):
|
|||
from one placement to another placement'''
|
||||
return plmTo.multiply(plmFrom.inverse())
|
||||
|
||||
def getPlacementsList(documentObject, context = None, suppressWarning = False):
|
||||
def getPlacementsList(documentObject, context = None, suppressWarning = False, dereferenced = False, torefplm = App.Placement()):
|
||||
'''getPlacementsList(documentObject, context = None): extract list of placements
|
||||
from an array object. Context is an object to report as context, when displaying
|
||||
a warning if the documentObject happens to be a non-lattice.'''
|
||||
|
@ -518,7 +518,14 @@ def getPlacementsList(documentObject, context = None, suppressWarning = False):
|
|||
if not suppressWarning:
|
||||
lattice2Executer.warning(context, documentObject.Name + " is not a placement or an array of placements. Results may be unexpected.")
|
||||
leaves = LCE.AllLeaves(documentObject.Shape)
|
||||
if not dereferenced:
|
||||
return [leaf.Placement for leaf in leaves]
|
||||
else:
|
||||
# goal: refplm * derefplm == it
|
||||
# return = torefplm * derefplm
|
||||
# => return = torefplm * refplm.inverse * it
|
||||
operator = torefplm.multiply(getReferencePlm(documentObject).inverse())
|
||||
return [operator.multiply(leaf.Placement) for leaf in leaves]
|
||||
|
||||
def getReferencePlm(feature):
|
||||
"""Obtains reference placement, in container's CS (includes feature.Placement)."""
|
||||
|
|
Loading…
Reference in New Issue
Block a user