Пример #1
0
def getGeometryOutput(derivation, elementNode):
    "Get vector3 vertexes from attribute dictionary."
    if derivation == None:
        derivation = CircleDerivation(elementNode)
    angleTotal = math.radians(derivation.start)
    loop = []
    sidesCeiling = int(
        math.ceil(abs(derivation.sides) * derivation.extent / 360.0))
    sideAngle = math.radians(derivation.extent) / sidesCeiling
    if derivation.sides < 0.0:
        sideAngle = -sideAngle
    spiral = lineation.Spiral(derivation.spiral, 0.5 * sideAngle / math.pi)
    for side in xrange(sidesCeiling + 1):
        unitPolar = euclidean.getWiddershinsUnitPolar(angleTotal)
        x = unitPolar.real * derivation.radiusArealized.real
        y = unitPolar.imag * derivation.radiusArealized.imag
        vertex = spiral.getSpiralPoint(unitPolar, Vector3(x, y))
        angleTotal += sideAngle
        loop.append(vertex)
    radiusMaximum = 0.000001 * max(derivation.radiusArealized.real,
                                   derivation.radiusArealized.imag)
    loop = euclidean.getLoopWithoutCloseEnds(radiusMaximum, loop)
    lineation.setClosedAttribute(elementNode, derivation.revolutions)
    return lineation.getGeometryOutputByLoop(
        elementNode, lineation.SideLoop(loop, sideAngle))
Пример #2
0
def getGeometryOutput(derivation, xmlElement):
    "Get vector3 vertexes from attribute dictionary."
    if derivation == None:
        derivation = CircleDerivation(xmlElement)
    loop = []
    angleTotal = math.radians(derivation.start)
    sidesCeiling = int(
        math.ceil(abs(derivation.sides) * derivation.extent / 360.0))
    sideAngle = math.radians(derivation.extent) / sidesCeiling
    if derivation.sides < 0.0:
        sideAngle = -sideAngle
    spiral = lineation.Spiral(derivation.spiral, 0.5 * sideAngle / math.pi)
    for side in xrange(sidesCeiling + 1):
        unitPolar = euclidean.getWiddershinsUnitPolar(angleTotal)
        vertex = spiral.getSpiralPoint(
            unitPolar,
            Vector3(unitPolar.real * derivation.radius.real,
                    unitPolar.imag * derivation.radius.imag))
        angleTotal += sideAngle
        loop.append(vertex)
    loop = euclidean.getLoopWithoutCloseEnds(
        0.000001 * max(derivation.radius.real, derivation.radius.imag), loop)
    sideLength = sideAngle * lineation.getRadiusAverage(derivation.radius)
    lineation.setClosedAttribute(derivation.revolutions, xmlElement)
    return lineation.getGeometryOutputByLoop(
        lineation.SideLoop(loop, sideAngle, sideLength), xmlElement)
Пример #3
0
def getGeometryOutput(derivation, elementNode):
	"Get vector3 vertexes from attribute dictionary."
	if derivation == None:
		derivation = PolygonDerivation(elementNode)
	loop = []
	spiral = lineation.Spiral(derivation.spiral, 0.5 * derivation.sideAngle / math.pi)
	for side in xrange(derivation.start, derivation.start + derivation.extent + 1):
		angle = float(side) * derivation.sideAngle
		unitPolar = euclidean.getWiddershinsUnitPolar(angle)
		vertex = spiral.getSpiralPoint(unitPolar, Vector3(unitPolar.real * derivation.radius.real, unitPolar.imag * derivation.radius.imag))
		loop.append(vertex)
	loop = euclidean.getLoopWithoutCloseEnds(0.000001 * max(derivation.radius.real, derivation.radius.imag), loop)
	lineation.setClosedAttribute(elementNode, derivation.revolutions)
	return lineation.getGeometryOutputByLoop(elementNode, lineation.SideLoop(loop, derivation.sideAngle))
Пример #4
0
def getGeometryOutput(derivation, elementNode):
	"Get vector3 vertexes from attribute dictionary."
	if derivation == None:
		derivation = PolygonDerivation(elementNode)
	loop = []
	spiral = lineation.Spiral(derivation.spiral, 0.5 * derivation.sideAngle / math.pi)
	for side in xrange(derivation.start, derivation.start + derivation.extent + 1):
		angle = float(side) * derivation.sideAngle
		unitPolar = euclidean.getWiddershinsUnitPolar(angle)
		vertex = spiral.getSpiralPoint(unitPolar, Vector3(unitPolar.real * derivation.radius.real, unitPolar.imag * derivation.radius.imag))
		loop.append(vertex)
	loop = euclidean.getLoopWithoutCloseEnds(0.000001 * max(derivation.radius.real, derivation.radius.imag), loop)
	lineation.setClosedAttribute(elementNode, derivation.revolutions)
	return lineation.getGeometryOutputByLoop(elementNode, lineation.SideLoop(loop, derivation.sideAngle))
Пример #5
0
def getGeometryOutput(derivation, xmlElement):
	"Get vector3 vertexes from attribute dictionary."
	if derivation == None:
		derivation = CircleDerivation(xmlElement)
	loop = []
	angleTotal = math.radians(derivation.start)
	sidesCeiling = int(math.ceil(abs(derivation.sides) * derivation.extent / 360.0))
	sideAngle = math.radians(derivation.extent) / sidesCeiling
	spiral = lineation.Spiral(derivation.spiral, 0.5 * sideAngle / math.pi)
	for side in xrange(sidesCeiling + 1):
		unitPolar = euclidean.getWiddershinsUnitPolar(angleTotal)
		vertex = spiral.getSpiralPoint(unitPolar, Vector3(unitPolar.real * derivation.radius.real, unitPolar.imag * derivation.radius.imag))
		angleTotal += sideAngle
		loop.append(vertex)
	loop = euclidean.getLoopWithoutCloseEnds(0.000001 * max(derivation.radius.real, derivation.radius.imag), loop)
	sideLength = sideAngle * lineation.getRadiusAverage(derivation.radius)
	lineation.setClosedAttribute(derivation.revolutions, xmlElement)
	return lineation.getGeometryOutputByLoop(lineation.SideLoop(loop, sideAngle, sideLength), xmlElement)
Пример #6
0
def getGeometryOutput(derivation, elementNode):
	"Get vector3 vertexes from attribute dictionary."
	if derivation == None:
		derivation = CircleDerivation(elementNode)
	angleTotal = math.radians(derivation.start)
	loop = []
	sidesCeiling = int(math.ceil(abs(derivation.sides) * derivation.extent / 360.0))
	sideAngle = math.radians(derivation.extent) / sidesCeiling
	if derivation.sides < 0.0:
		sideAngle = -sideAngle
	spiral = lineation.Spiral(derivation.spiral, 0.5 * sideAngle / math.pi)
	for side in xrange(sidesCeiling + 1):
		unitPolar = euclidean.getWiddershinsUnitPolar(angleTotal)
		x = unitPolar.real * derivation.radiusArealized.real
		y = unitPolar.imag * derivation.radiusArealized.imag
		vertex = spiral.getSpiralPoint(unitPolar, Vector3(x, y))
		angleTotal += sideAngle
		loop.append(vertex)
	radiusMaximum = 0.000001 * max(derivation.radiusArealized.real, derivation.radiusArealized.imag)
	loop = euclidean.getLoopWithoutCloseEnds(radiusMaximum, loop)
	lineation.setClosedAttribute(elementNode, derivation.revolutions)
	return lineation.getGeometryOutputByLoop(elementNode, lineation.SideLoop(loop, sideAngle))