def processElementNodeByDerivation(derivation, elementNode): 'Process the xml element by derivation.' if derivation == None: derivation = CopyDerivation(elementNode) if derivation.target == None: print('Warning, copy could not get target for:') print(elementNode) return del elementNode.attributes['target'] copyMatrix = matrix.getBranchMatrixSetElementNode(elementNode) targetMatrix = matrix.getBranchMatrixSetElementNode(derivation.target) targetDictionaryCopy = evaluate.removeIdentifiersFromDictionary(derivation.target.attributes.copy()) targetDictionaryCopy.update(elementNode.attributes) elementNode.attributes = targetDictionaryCopy euclidean.removeTrueFromDictionary(elementNode.attributes, 'visible') elementNode.localName = derivation.target.localName derivation.target.copyXMLChildNodes(elementNode.getIDSuffix(), elementNode) elementNode.getXMLProcessor().processElementNode(elementNode) if copyMatrix != None and targetMatrix != None: elementNode.xmlObject.matrix4X4 = copyMatrix.getSelfTimesOther(targetMatrix.tetragrid) if elementNode.xmlObject == None: return if len(elementNode.xmlObject.getPaths()) > 0: lineation.processElementNode(elementNode) return geometryOutput = elementNode.xmlObject.getGeometryOutput() if geometryOutput == None: return solidMatchingPlugins = solid.getSolidMatchingPlugins(elementNode) if len(solidMatchingPlugins) == 0: return geometryOutput = solid.getGeometryOutputByManipulation(elementNode, geometryOutput) elementNode.xmlObject.transformGeometryOutput(geometryOutput) lineation.removeChildNodesFromElementObject(elementNode) elementNode.getXMLProcessor().convertElementNode(elementNode, geometryOutput)
def processTargetByFunctions(geometryFunction, pathFunction, target): 'Process the target by the manipulationFunction.' if target.xmlObject == None: return if len(target.xmlObject.getPaths()) > 0: lineation.processTargetByFunction(pathFunction, target) return geometryOutput = getGeometryOutputByFunction(target, geometryFunction) lineation.removeChildNodesFromElementObject(target) xmlProcessor = target.getXMLProcessor() xmlProcessor.convertElementNode(target, geometryOutput)
def processTargetByFunctionPair(geometryFunction, pathFunction, target): 'Process the target by the manipulationFunction.' if target.xmlObject == None: print('Warning, there is no object in processTargetByFunctions in solid for:') print(target) return if len(target.xmlObject.getPaths()) > 0: lineation.processTargetByFunction(pathFunction, target) return geometryOutput = getGeometryOutputByFunction(target, geometryFunction) lineation.removeChildNodesFromElementObject(target) target.getXMLProcessor().convertElementNode(target, geometryOutput)
def processTarget(target): 'Process the target.' if target.xmlObject == None: print('Warning, there is no object in processElementNode in solid for:') print(target) return geometryOutput = target.xmlObject.getGeometryOutput() if geometryOutput == None: print('Warning, there is no geometryOutput in processElementNode in solid for:') print(target.xmlObject) return geometryOutput = getGeometryOutputByManipulation(target, geometryOutput) lineation.removeChildNodesFromElementObject(target) target.getXMLProcessor().convertElementNode(target, geometryOutput)