Beispiel #1
0
def getCubicPath(xmlElement):
    "Get the cubic path."
    end = evaluate.getVector3FromXMLElement(xmlElement)
    previousXMLElement = xmlElement.getPreviousXMLElement()
    if previousXMLElement == None:
        print(
            'Warning, can not get previousXMLElement in getCubicPath in cubic for:'
        )
        print(xmlElement)
        return [end]
    begin = xmlElement.getPreviousVertex(Vector3())
    controlPoint0 = evaluate.getVector3ByPrefix('controlPoint0', None,
                                                xmlElement)
    if controlPoint0 == None:
        oldControlPoint = evaluate.getVector3ByPrefixes(
            ['controlPoint', 'controlPoint1'], None, previousXMLElement)
        if oldControlPoint == None:
            print(
                'Warning, can not get oldControlPoint in getCubicPath in cubic for:'
            )
            print(xmlElement)
            return [end]
        controlPoint0 = begin + begin - oldControlPoint
    controlPoints = [
        controlPoint0,
        evaluate.getVector3ByPrefix('controlPoint1', None, xmlElement)
    ]
    return svg_reader.getCubicPoints(
        begin, controlPoints, end,
        lineation.getNumberOfBezierPoints(begin, end, xmlElement))
Beispiel #2
0
def getCubicPath(elementNode):
	"Get the cubic path."
	end = evaluate.getVector3FromElementNode(elementNode)
	previousElementNode = elementNode.getPreviousElementNode()
	if previousElementNode == None:
		print('Warning, can not get previousElementNode in getCubicPath in cubic for:')
		print(elementNode)
		return [end]
	begin = elementNode.getPreviousVertex(Vector3())
	evaluatedControlPoints = evaluate.getTransformedPathByKey([], elementNode, 'controlPoints')
	if len(evaluatedControlPoints) > 1:
		return getCubicPathByBeginEnd(begin, evaluatedControlPoints, elementNode, end)
	controlPoint0 = evaluate.getVector3ByPrefix(None, elementNode, 'controlPoint0')
	controlPoint1 = evaluate.getVector3ByPrefix(None, elementNode, 'controlPoint1')
	if len(evaluatedControlPoints) == 1:
		controlPoint1 = evaluatedControlPoints[0]
	if controlPoint0 == None:
		oldControlPoint = evaluate.getVector3ByPrefixes(previousElementNode, ['controlPoint','controlPoint1'], None)
		if oldControlPoint == None:
			oldControlPoints = evaluate.getTransformedPathByKey([], previousElementNode, 'controlPoints')
			if len(oldControlPoints) > 0:
				oldControlPoint = oldControlPoints[-1]
		if oldControlPoint == None:
			oldControlPoint = end
		controlPoint0 = begin + begin - oldControlPoint
	return getCubicPathByBeginEnd(begin, [controlPoint0, controlPoint1], elementNode, end)
Beispiel #3
0
def getCubicPath(elementNode):
	"Get the cubic path."
	end = evaluate.getVector3FromElementNode(elementNode)
	previousElementNode = elementNode.getPreviousElementNode()
	if previousElementNode is None:
		print('Warning, can not get previousElementNode in getCubicPath in cubic for:')
		print(elementNode)
		return [end]
	begin = elementNode.getPreviousVertex(Vector3())
	evaluatedControlPoints = evaluate.getTransformedPathByKey([], elementNode, 'controlPoints')
	if len(evaluatedControlPoints) > 1:
		return getCubicPathByBeginEnd(begin, evaluatedControlPoints, elementNode, end)
	controlPoint0 = evaluate.getVector3ByPrefix(None, elementNode, 'controlPoint0')
	controlPoint1 = evaluate.getVector3ByPrefix(None, elementNode, 'controlPoint1')
	if len(evaluatedControlPoints) == 1:
		controlPoint1 = evaluatedControlPoints[0]
	if controlPoint0 is None:
		oldControlPoint = evaluate.getVector3ByPrefixes(previousElementNode, ['controlPoint','controlPoint1'], None)
		if oldControlPoint is None:
			oldControlPoints = evaluate.getTransformedPathByKey([], previousElementNode, 'controlPoints')
			if len(oldControlPoints) > 0:
				oldControlPoint = oldControlPoints[-1]
		if oldControlPoint is None:
			oldControlPoint = end
		controlPoint0 = begin + begin - oldControlPoint
	return getCubicPathByBeginEnd(begin, [controlPoint0, controlPoint1], elementNode, end)
Beispiel #4
0
 def __init__(self, elementNode):
     'Set defaults.'
     self.inradius = evaluate.getVector3ByPrefixes(elementNode,
                                                   ['demisize', 'inradius'],
                                                   Vector3(1.0, 1.0, 1.0))
     self.inradius = evaluate.getVector3ByMultiplierPrefix(
         elementNode, 2.0, 'size', self.inradius)
	def __init__(self, xmlElement):
		'Set defaults.'
		self.fileName = evaluate.getEvaluatedString('', 'file', xmlElement)
		self.heightGrid = evaluate.getEvaluatedValue([], 'heightGrid', xmlElement)
		self.inradius = evaluate.getVector3ByPrefixes(['demisize', 'inradius'], Vector3(10.0, 10.0, 5.0), xmlElement)
		self.inradius = evaluate.getVector3ByMultiplierPrefix(2.0, 'size', self.inradius, xmlElement)
		self.start = evaluate.getEvaluatedFloat(0.0, 'start', xmlElement)
def getCubicPath(xmlElement):
	"Get the cubic path."
	end = evaluate.getVector3FromXMLElement(xmlElement)
	previousXMLElement = xmlElement.getPreviousXMLElement()
	if previousXMLElement == None:
		print('Warning, can not get previousXMLElement in getCubicPath in cubic for:')
		print(xmlElement)
		return [end]
	begin = xmlElement.getPreviousVertex(Vector3())
	evaluatedControlPoints = evaluate.getTransformedPathByKey('controlPoints', xmlElement)
	if len(evaluatedControlPoints) > 1:
		return getCubicPathByBeginEnd(begin, evaluatedControlPoints, end, xmlElement)
	controlPoint0 = evaluate.getVector3ByPrefix('controlPoint0', None, xmlElement)
	controlPoint1 = evaluate.getVector3ByPrefix('controlPoint1', None, xmlElement)
	if len(evaluatedControlPoints) == 1:
		controlPoint1 = evaluatedControlPoints[0]
	if controlPoint0 == None:
		oldControlPoint = evaluate.getVector3ByPrefixes(['controlPoint','controlPoint1'], None, previousXMLElement)
		if oldControlPoint == None:
			oldControlPoints = evaluate.getTransformedPathByKey('controlPoints', previousXMLElement)
			if len(oldControlPoints) > 0:
				oldControlPoint = oldControlPoints[-1]
		if oldControlPoint == None:
			oldControlPoint = end
		controlPoint0 = begin + begin - oldControlPoint
	return getCubicPathByBeginEnd(begin, [controlPoint0, controlPoint1], end, xmlElement)
Beispiel #7
0
	def __init__(self, elementNode):
		'Set defaults.'
		self.fileName = evaluate.getEvaluatedString('', elementNode, 'file')
		self.heightGrid = evaluate.getEvaluatedValue([], elementNode, 'heightGrid')
		self.inradius = evaluate.getVector3ByPrefixes(elementNode, ['demisize', 'inradius'], Vector3(10.0, 10.0, 5.0))
		self.inradius = evaluate.getVector3ByMultiplierPrefix(elementNode, 2.0, 'size', self.inradius)
		self.start = evaluate.getEvaluatedFloat(0.0, elementNode, 'start')
Beispiel #8
0
	def setToObjectAttributeDictionary(self):
		"Set the shape of this carvable object info."
		self.inradius = evaluate.getVector3ByPrefixes( ['demisize', 'inradius'], Vector3(1.0, 1.0, 1.0), self.xmlElement )
		self.inradius = evaluate.getVector3ByMultiplierPrefix( 2.0, 'size', self.inradius, self.xmlElement )
		self.xmlElement.attributeDictionary['inradius.x'] = self.inradius.x
		self.xmlElement.attributeDictionary['inradius.y'] = self.inradius.y
		self.xmlElement.attributeDictionary['inradius.z'] = self.inradius.z
		self.createShape()
Beispiel #9
0
 def setToObjectAttributeDictionary(self):
     "Set the shape of this carvable object info."
     self.radius = evaluate.getVector3ByPrefixes(["demisize", "radius"], Vector3(1.0, 1.0, 1.0), self.xmlElement)
     self.radius = evaluate.getVector3ByMultiplierPrefixes(2.0, ["diameter", "size"], self.radius, self.xmlElement)
     self.xmlElement.attributeDictionary["radius.x"] = self.radius.x
     self.xmlElement.attributeDictionary["radius.y"] = self.radius.y
     self.xmlElement.attributeDictionary["radius.z"] = self.radius.z
     self.createShape()
Beispiel #10
0
	def setToObjectAttributeDictionary(self):
		"Set the shape of this carvable object info."
		self.inradius = evaluate.getVector3ByPrefixes( ['demisize', 'inradius'], Vector3(1.0, 1.0, 1.0), self.xmlElement )
		self.inradius = evaluate.getVector3ByMultiplierPrefix( 2.0, 'size', self.inradius, self.xmlElement )
		self.xmlElement.attributeDictionary['inradius.x'] = self.inradius.x
		self.xmlElement.attributeDictionary['inradius.y'] = self.inradius.y
		self.xmlElement.attributeDictionary['inradius.z'] = self.inradius.z
		self.createShape()
Beispiel #11
0
 def __init__(self, elementNode):
     'Set defaults.'
     self.inradius = evaluate.getVector3ByPrefixes(
         elementNode, ['demisize', 'inradius', 'radius'],
         Vector3(1.0, 1.0, 1.0))
     self.inradius = evaluate.getVector3ByMultiplierPrefixes(
         elementNode, 2.0, ['diameter', 'size'], self.inradius)
     self.inradius.z = 0.5 * evaluate.getEvaluatedFloat(
         self.inradius.z + self.inradius.z, elementNode, 'height')
     self.topOverBottom = evaluate.getEvaluatedFloat(
         1.0, elementNode, 'topOverBottom')
Beispiel #12
0
	def setToObjectAttributeDictionary(self):
		"Set the shape of this carvable object info."
		self.inradius = evaluate.getVector3ByPrefixes( ['demisize', 'inradius', 'radius'], Vector3(1.0, 1.0, 1.0), self.xmlElement )
		self.inradius = evaluate.getVector3ByMultiplierPrefixes( 2.0, ['diameter', 'size'], self.inradius, self.xmlElement )
		self.inradius.z = 0.5 * evaluate.getEvaluatedFloatDefault( self.inradius.z + self.inradius.z, 'height', self.xmlElement )
		self.topOverBottom = evaluate.getEvaluatedFloatOne('topoverbottom', self.xmlElement )
		self.xmlElement.attributeDictionary['height'] = self.inradius.z + self.inradius.z
		self.xmlElement.attributeDictionary['radius.x'] = self.inradius.x
		self.xmlElement.attributeDictionary['radius.y'] = self.inradius.y
		self.xmlElement.attributeDictionary['topoverbottom'] = self.topOverBottom
		self.createShape()
Beispiel #13
0
 def __init__(self, xmlElement):
     'Set defaults.'
     self.fileName = evaluate.getEvaluatedString('', 'file', xmlElement)
     self.heightGrid = evaluate.getEvaluatedValue([], 'heightGrid',
                                                  xmlElement)
     self.inradius = evaluate.getVector3ByPrefixes(['demisize', 'inradius'],
                                                   Vector3(10.0, 10.0, 5.0),
                                                   xmlElement)
     self.inradius = evaluate.getVector3ByMultiplierPrefix(
         2.0, 'size', self.inradius, xmlElement)
     self.start = evaluate.getEvaluatedFloat(0.0, 'start', xmlElement)
Beispiel #14
0
 def __init__(self, elementNode):
     'Set defaults.'
     self.fileName = evaluate.getEvaluatedString('', elementNode, 'file')
     self.heightGrid = evaluate.getEvaluatedValue([], elementNode,
                                                  'heightGrid')
     self.inradius = evaluate.getVector3ByPrefixes(elementNode,
                                                   ['demisize', 'inradius'],
                                                   Vector3(10.0, 10.0, 5.0))
     self.inradius = evaluate.getVector3ByMultiplierPrefix(
         elementNode, 2.0, 'size', self.inradius)
     self.start = evaluate.getEvaluatedFloat(0.0, elementNode, 'start')
Beispiel #15
0
	def setToObjectAttributeDictionary(self):
		'Set the shape of this carvable object info.'
		self.inradius = evaluate.getVector3ByPrefixes(['demisize', 'inradius', 'radius'], Vector3(1.0, 1.0, 1.0), self.xmlElement)
		self.inradius = evaluate.getVector3ByMultiplierPrefixes(2.0, ['diameter', 'size'], self.inradius, self.xmlElement)
		self.inradius.z = 0.5 * evaluate.getEvaluatedFloatDefault(self.inradius.z + self.inradius.z, 'height', self.xmlElement)
		self.topOverBottom = evaluate.getEvaluatedFloatDefault(1.0, 'topOverBottom', self.xmlElement )
		self.xmlElement.attributeDictionary['height'] = self.inradius.z + self.inradius.z
		self.xmlElement.attributeDictionary['radius.x'] = self.inradius.x
		self.xmlElement.attributeDictionary['radius.y'] = self.inradius.y
		self.xmlElement.attributeDictionary['topOverBottom'] = self.topOverBottom
		self.createShape()
	def setToElementNode(self, elementNode):
		'Set to elementNode.'
		attributes = elementNode.attributes
		self.elementNode = elementNode
		self.radius = evaluate.getVector3ByPrefixes( elementNode, ['demisize', 'radius'], Vector3(1.0, 1.0, 1.0) )
		self.radius = evaluate.getVector3ByMultiplierPrefixes( elementNode, 2.0, ['diameter', 'size'], self.radius )
		if 'radius' in attributes:
			del attributes['radius']
		attributes['radius.x'] = self.radius.x
		attributes['radius.y'] = self.radius.y
		attributes['radius.z'] = self.radius.z
		self.createShape()
		self.liftByMinimumZ(-self.radius.z)
		solid.processArchiveRemoveSolid(elementNode, self.getGeometryOutput())
Beispiel #17
0
	def setToXMLElement(self, xmlElement):
		'Set to xmlElement.'
		attributeDictionary = xmlElement.attributeDictionary
		self.radius = evaluate.getVector3ByPrefixes( ['demisize', 'radius'], Vector3(1.0, 1.0, 1.0), xmlElement )
		self.radius = evaluate.getVector3ByMultiplierPrefixes( 2.0, ['diameter', 'size'], self.radius, xmlElement )
		self.xmlElement = xmlElement
		if 'radius' in attributeDictionary:
			del attributeDictionary['radius']
		attributeDictionary['radius.x'] = self.radius.x
		attributeDictionary['radius.y'] = self.radius.y
		attributeDictionary['radius.z'] = self.radius.z
		self.createShape()
		self.liftByMinimumZ(-self.radius.z)
		solid.processArchiveRemoveSolid(self.getGeometryOutput(), xmlElement)
Beispiel #18
0
	def setToXMLElement(self, xmlElement):
		"""Set to xmlElement."""
		attributeDictionary = xmlElement.attributeDictionary
		self.inradius = evaluate.getVector3ByPrefixes(['demisize', 'inradius'], Vector3(1.0, 1.0, 1.0), xmlElement)
		self.inradius = evaluate.getVector3ByMultiplierPrefix(2.0, 'size', self.inradius, xmlElement)
		self.xmlElement = xmlElement
		attributeDictionary['inradius.x'] = self.inradius.x
		attributeDictionary['inradius.y'] = self.inradius.y
		attributeDictionary['inradius.z'] = self.inradius.z
		if 'inradius' in attributeDictionary:
			del attributeDictionary['inradius']
		self.createShape()
		self.liftByMinimumZ(-self.inradius.z)
		solid.processArchiveRemoveSolid(self.getGeometryOutput(), xmlElement)
Beispiel #19
0
 def setToElementNode(self, elementNode):
     'Set to elementNode.'
     attributes = elementNode.attributes
     self.elementNode = elementNode
     self.inradius = evaluate.getVector3ByPrefixes(elementNode,
                                                   ['demisize', 'inradius'],
                                                   Vector3(1.0, 1.0, 1.0))
     self.inradius = evaluate.getVector3ByMultiplierPrefix(
         elementNode, 2.0, 'size', self.inradius)
     attributes['inradius.x'] = self.inradius.x
     attributes['inradius.y'] = self.inradius.y
     attributes['inradius.z'] = self.inradius.z
     if 'inradius' in attributes:
         del attributes['inradius']
     self.createShape()
     self.liftByMinimumZ(-self.inradius.z)
     solid.processArchiveRemoveSolid(elementNode, self.getGeometryOutput())
Beispiel #20
0
def getQuadraticPath(elementNode):
	"Get the quadratic path."
	end = evaluate.getVector3FromElementNode(elementNode)
	previousElementNode = elementNode.getPreviousElementNode()
	if previousElementNode == None:
		print('Warning, can not get previousElementNode in getQuadraticPath in quadratic for:')
		print(elementNode)
		return [end]
	begin = elementNode.getPreviousVertex(Vector3())
	controlPoint = evaluate.getVector3ByPrefix(None, elementNode, 'controlPoint')
	if controlPoint == None:
		oldControlPoint = evaluate.getVector3ByPrefixes(previousElementNode, ['controlPoint','controlPoint1'], None)
		if oldControlPoint == None:
			oldControlPoint = end
		controlPoint = begin + begin - oldControlPoint
		evaluate.addVector3ToElementNode(elementNode, 'controlPoint', controlPoint)
	return svg_reader.getQuadraticPoints(begin, controlPoint, end, lineation.getNumberOfBezierPoints(begin, elementNode, end))
Beispiel #21
0
	def setToXMLElement(self, xmlElement):
		'Set to xmlElement.'
		attributeDictionary = xmlElement.attributeDictionary
		self.inradius = evaluate.getVector3ByPrefixes(['demisize', 'inradius', 'radius'], Vector3(1.0, 1.0, 1.0), xmlElement)
		self.inradius = evaluate.getVector3ByMultiplierPrefixes(2.0, ['diameter', 'size'], self.inradius, xmlElement)
		self.inradius.z = 0.5 * evaluate.getEvaluatedFloat(self.inradius.z + self.inradius.z, 'height', xmlElement)
		self.topOverBottom = evaluate.getEvaluatedFloat(1.0, 'topOverBottom', xmlElement )
		self.xmlElement = xmlElement
		if 'inradius' in attributeDictionary:
			del attributeDictionary['inradius']
		attributeDictionary['height'] = self.inradius.z + self.inradius.z
		attributeDictionary['radius.x'] = self.inradius.x
		attributeDictionary['radius.y'] = self.inradius.y
		attributeDictionary['topOverBottom'] = self.topOverBottom
		self.createShape()
		self.liftByMinimumZ(-self.inradius.z)
		solid.processArchiveRemoveSolid(self.getGeometryOutput(), xmlElement)
Beispiel #22
0
	def setToXMLElement(self, xmlElement):
		"""Set to xmlElement."""
		attributeDictionary = xmlElement.attributeDictionary
		self.inradius = evaluate.getVector3ByPrefixes(['demisize', 'inradius', 'radius'], Vector3(1.0, 1.0, 1.0), xmlElement)
		self.inradius = evaluate.getVector3ByMultiplierPrefixes(2.0, ['diameter', 'size'], self.inradius, xmlElement)
		self.inradius.z = 0.5 * evaluate.getEvaluatedFloat(self.inradius.z + self.inradius.z, 'height', xmlElement)
		self.topOverBottom = evaluate.getEvaluatedFloat(1.0, 'topOverBottom', xmlElement )
		self.xmlElement = xmlElement
		if 'inradius' in attributeDictionary:
			del attributeDictionary['inradius']
		attributeDictionary['height'] = self.inradius.z + self.inradius.z
		attributeDictionary['radius.x'] = self.inradius.x
		attributeDictionary['radius.y'] = self.inradius.y
		attributeDictionary['topOverBottom'] = self.topOverBottom
		self.createShape()
		self.liftByMinimumZ(-self.inradius.z)
		solid.processArchiveRemoveSolid(self.getGeometryOutput(), xmlElement)
Beispiel #23
0
def getQuadraticPath(xmlElement):
	"Get the quadratic path."
	end = evaluate.getVector3FromXMLElement(xmlElement)
	previousXMLElement = xmlElement.getPreviousXMLElement()
	if previousXMLElement == None:
		print('Warning, can not get previousXMLElement in getQuadraticPath in quadratic for:')
		print(xmlElement)
		return [end]
	begin = xmlElement.getPreviousVertex(Vector3())
	controlPoint = evaluate.getVector3ByPrefix(None, 'controlPoint', xmlElement)
	if controlPoint == None:
		oldControlPoint = evaluate.getVector3ByPrefixes(['controlPoint','controlPoint1'], None, previousXMLElement)
		if oldControlPoint == None:
			oldControlPoint = end
		controlPoint = begin + begin - oldControlPoint
		evaluate.addVector3ToXMLElement('controlPoint', controlPoint, xmlElement)
	return svg_reader.getQuadraticPoints(begin, controlPoint, end, lineation.getNumberOfBezierPoints(begin, end, xmlElement))
	def setToElementNode(self, elementNode):
		'Set to elementNode.'
		attributes = elementNode.attributes
		self.elementNode = elementNode
		self.inradius = evaluate.getVector3ByPrefixes(elementNode, ['demisize', 'inradius', 'radius'], Vector3(1.0, 1.0, 1.0))
		self.inradius = evaluate.getVector3ByMultiplierPrefixes(elementNode, 2.0, ['diameter', 'size'], self.inradius)
		self.inradius.z = 0.5 * evaluate.getEvaluatedFloat(self.inradius.z + self.inradius.z, elementNode, 'height')
		self.topOverBottom = evaluate.getEvaluatedFloat(1.0, elementNode, 'topOverBottom')
		if 'inradius' in attributes:
			del attributes['inradius']
		attributes['height'] = self.inradius.z + self.inradius.z
		attributes['radius.x'] = self.inradius.x
		attributes['radius.y'] = self.inradius.y
		attributes['topOverBottom'] = self.topOverBottom
		self.createShape()
		self.liftByMinimumZ(-self.inradius.z)
		solid.processArchiveRemoveSolid(elementNode, self.getGeometryOutput())
def getQuadraticPath(xmlElement):
	"Get the quadratic path."
	end = evaluate.getVector3FromXMLElement(xmlElement)
	previousXMLElement = xmlElement.getPreviousXMLElement()
	if previousXMLElement == None:
		print('Warning, can not get previousXMLElement in getQuadraticPath in quadratic for:')
		print(xmlElement)
		return [end]
	begin = xmlElement.getPreviousVertex(Vector3())
	controlPoint = evaluate.getVector3ByPrefix(None, 'controlPoint', xmlElement)
	if controlPoint == None:
		oldControlPoint = evaluate.getVector3ByPrefixes(['controlPoint','controlPoint1'], None, previousXMLElement)
		if oldControlPoint == None:
			oldControlPoint = end
		controlPoint = begin + begin - oldControlPoint
		evaluate.addVector3ToXMLElement('controlPoint', controlPoint, xmlElement)
	return svg_reader.getQuadraticPoints(begin, controlPoint, end, lineation.getNumberOfBezierPoints(begin, end, xmlElement))
Beispiel #26
0
def getQuadraticPath(elementNode):
	"Get the quadratic path."
	end = evaluate.getVector3FromElementNode(elementNode)
	previousElementNode = elementNode.getPreviousElementNode()
	if previousElementNode == None:
		print('Warning, can not get previousElementNode in getQuadraticPath in quadratic for:')
		print(elementNode)
		return [end]
	begin = elementNode.getPreviousVertex(Vector3())
	controlPoint = evaluate.getVector3ByPrefix(None, elementNode, 'controlPoint')
	if controlPoint == None:
		oldControlPoint = evaluate.getVector3ByPrefixes(previousElementNode, ['controlPoint','controlPoint1'], None)
		if oldControlPoint == None:
			oldControlPoint = end
		controlPoint = begin + begin - oldControlPoint
		evaluate.addVector3ToElementNode(elementNode, 'controlPoint', controlPoint)
	return svg_reader.getQuadraticPoints(begin, controlPoint, end, lineation.getNumberOfBezierPoints(begin, elementNode, end))
Beispiel #27
0
def getCubicPath(xmlElement):
	"Get the cubic path."
	end = evaluate.getVector3FromXMLElement(xmlElement)
	previousXMLElement = xmlElement.getPreviousXMLElement()
	if previousXMLElement == None:
		print('Warning, can not get previousXMLElement in getCubicPath in cubic for:')
		print(xmlElement)
		return [end]
	begin = xmlElement.getPreviousVertex(Vector3())
	controlPoint0 = evaluate.getVector3ByPrefix('controlPoint0', None, xmlElement)
	if controlPoint0 == None:
		oldControlPoint = evaluate.getVector3ByPrefixes(['controlPoint','controlPoint1'], None, previousXMLElement)
		if oldControlPoint == None:
			print('Warning, can not get oldControlPoint in getCubicPath in cubic for:')
			print(xmlElement)
			return [end]
		controlPoint0 = begin + begin - oldControlPoint
	controlPoints = [controlPoint0, evaluate.getVector3ByPrefix('controlPoint1', None, xmlElement)]
	return svg_reader.getCubicPoints(begin, controlPoints, end, lineation.getNumberOfBezierPoints(begin, end, xmlElement))
Beispiel #28
0
 def setToElementNode(self, elementNode):
     'Set to elementNode.'
     attributes = elementNode.attributes
     self.elementNode = elementNode
     self.inradius = evaluate.getVector3ByPrefixes(
         elementNode, ['demisize', 'inradius', 'radius'],
         Vector3(1.0, 1.0, 1.0))
     self.inradius = evaluate.getVector3ByMultiplierPrefixes(
         elementNode, 2.0, ['diameter', 'size'], self.inradius)
     self.inradius.z = 0.5 * evaluate.getEvaluatedFloat(
         self.inradius.z + self.inradius.z, elementNode, 'height')
     self.topOverBottom = evaluate.getEvaluatedFloat(
         1.0, elementNode, 'topOverBottom')
     if 'inradius' in attributes:
         del attributes['inradius']
     attributes['height'] = self.inradius.z + self.inradius.z
     attributes['radius.x'] = self.inradius.x
     attributes['radius.y'] = self.inradius.y
     attributes['topOverBottom'] = self.topOverBottom
     self.createShape()
     self.liftByMinimumZ(-self.inradius.z)
     solid.processArchiveRemoveSolid(elementNode, self.getGeometryOutput())
Beispiel #29
0
def getCubicPath(xmlElement):
    "Get the cubic path."
    end = evaluate.getVector3FromXMLElement(xmlElement)
    previousXMLElement = xmlElement.getPreviousXMLElement()
    if previousXMLElement == None:
        print(
            'Warning, can not get previousXMLElement in getCubicPath in cubic for:'
        )
        print(xmlElement)
        return [end]
    begin = xmlElement.getPreviousVertex(Vector3())
    evaluatedControlPoints = evaluate.getTransformedPathByKey([],
                                                              'controlPoints',
                                                              xmlElement)
    if len(evaluatedControlPoints) > 1:
        return getCubicPathByBeginEnd(begin, evaluatedControlPoints, end,
                                      xmlElement)
    controlPoint0 = evaluate.getVector3ByPrefix(None, 'controlPoint0',
                                                xmlElement)
    controlPoint1 = evaluate.getVector3ByPrefix(None, 'controlPoint1',
                                                xmlElement)
    if len(evaluatedControlPoints) == 1:
        controlPoint1 = evaluatedControlPoints[0]
    if controlPoint0 == None:
        oldControlPoint = evaluate.getVector3ByPrefixes(
            ['controlPoint', 'controlPoint1'], None, previousXMLElement)
        if oldControlPoint == None:
            oldControlPoints = evaluate.getTransformedPathByKey(
                [], 'controlPoints', previousXMLElement)
            if len(oldControlPoints) > 0:
                oldControlPoint = oldControlPoints[-1]
        if oldControlPoint == None:
            oldControlPoint = end
        controlPoint0 = begin + begin - oldControlPoint
    return getCubicPathByBeginEnd(begin, [controlPoint0, controlPoint1], end,
                                  xmlElement)
Beispiel #30
0
	def __init__(self, elementNode):
		'Set defaults.'
		self.inradius = evaluate.getVector3ByPrefixes(elementNode, ['demisize', 'inradius', 'radius'], Vector3(1.0, 1.0, 1.0))
		self.inradius = evaluate.getVector3ByMultiplierPrefixes(elementNode, 2.0, ['diameter', 'size'], self.inradius)
		self.inradius.z = 0.5 * evaluate.getEvaluatedFloat(self.inradius.z + self.inradius.z, elementNode, 'height')
		self.topOverBottom = evaluate.getEvaluatedFloat(1.0, elementNode, 'topOverBottom')
Beispiel #31
0
 def __init__(self, elementNode):
     "Set defaults."
     self.inradius = evaluate.getVector3ByPrefixes(elementNode, ["demisize", "inradius"], Vector3(1.0, 1.0, 1.0))
     self.inradius = evaluate.getVector3ByMultiplierPrefix(elementNode, 2.0, "size", self.inradius)
Beispiel #32
0
	def __init__(self, elementNode):
		'Set defaults.'
		self.radius = evaluate.getVector3ByPrefixes(elementNode, ['demisize', 'radius'], Vector3(1.0, 1.0, 1.0))
		self.radius = evaluate.getVector3ByMultiplierPrefixes(elementNode, 2.0, ['diameter', 'size'], self.radius)