ReferencePlacement: fixes

This commit is contained in:
DeepSOIC 2018-08-16 13:18:18 +03:00
parent 6c620b130f
commit f4b88d1a2e
2 changed files with 7 additions and 4 deletions

View File

@ -141,8 +141,9 @@ class LatticeFeature(object):
def setReferencePlm(self, selfobj, refplm): def setReferencePlm(self, selfobj, refplm):
"""setReferencePlm(selfobj, refplm): sets reference placement, in internal CS. If refplm is None, the property is removed.""" """setReferencePlm(selfobj, refplm): sets reference placement, in internal CS. If refplm is None, the property is removed."""
attr = 'ReferencePlacement' attr = 'ReferencePlacement'
if refplm is None and hasattr(selfobj, attr): if refplm is None:
selfobj.removeProperty(attr) if hasattr(selfobj, attr):
selfobj.removeProperty(attr)
else: else:
if not hasattr(selfobj, attr): if not hasattr(selfobj, attr):
selfobj.addProperty( selfobj.addProperty(
@ -347,6 +348,7 @@ class ViewProviderLatticeFeature(object):
if hasattr(self, 'refplm_node') and self.refplm_node is not None: if hasattr(self, 'refplm_node') and self.refplm_node is not None:
vobj.RootNode.removeChild(self.refplm_node) vobj.RootNode.removeChild(self.refplm_node)
self.refplm_node, self.refplm_tr, self.refplm_sh = None, None, None self.refplm_node, self.refplm_tr, self.refplm_sh = None, None, None
self.modenode_refplm = None
def __getstate__(self): def __getstate__(self):
return None return None
@ -380,7 +382,8 @@ class ViewProviderLatticeFeature(object):
def onChanged(self, vobj, prop): def onChanged(self, vobj, prop):
if prop == 'Visibility': if prop == 'Visibility':
self.modenode_refplm.whichChild.setValue(0 if vobj.Visibility == True else -1) if self.modenode_refplm is not None:
self.modenode_refplm.whichChild.setValue(0 if vobj.Visibility == True else -1)

View File

@ -98,7 +98,7 @@ def loadNode(shapeID):
nd = CoinGlue.readNodeFromFile(getShapePath(shapeID + '.iv')) nd = CoinGlue.readNodeFromFile(getShapePath(shapeID + '.iv'))
_NodeDict[shapeID] = nd _NodeDict[shapeID] = nd
nd.ref() # not sure if needed, but won't hurt. nd.ref() # not sure if needed, but won't hurt.
return nd return nd.copy()
def getRefPlmMarker(markerID, placement = None, scale = 1.0): def getRefPlmMarker(markerID, placement = None, scale = 1.0):
'''getRefPlmMarker(markerID, placement = None, scale = 1.0): returns a coin placement marker shape, as SoSeparator (+ transform node + shape node). '''getRefPlmMarker(markerID, placement = None, scale = 1.0): returns a coin placement marker shape, as SoSeparator (+ transform node + shape node).