paella/src/Meshing/gen.py

56 lines
1.6 KiB
Python
Executable File

#!/usr/bin/python
import math as Math
counter = 0
def print_list(center , points, name="c"):
global counter
print("auto " + name +" = pae::Circle<float>{};")
print(name + ".center = pae::Vector3<float>{" + \
"{:0.4f}".format(center[0]) + "f, " + \
"{:0.4f}".format(center[1]) + "f, " + \
"{:0.4f}".format(center[2]) +"f};")
for v in points:
print(name + ".points.push_back(std::make_pair(" + str(counter) +", pae::Vector3<float>{" + \
"{:0.4f}".format(v[0]) + "f, " + \
"{:0.4f}".format(v[1]) + "f, " + \
"{:0.4f}".format(v[2]) + "f}));")
counter += 1
def sum_elements(l1,l2):
return [x+y for x,y in zip(l1,l2)]
def multiply_elements(l1,f):
return [x*f for x in l1]
def gen_circle(center, first_vector, second_vector, maximum = 10):
l = []
for cpt in range(0,maximum):
theta = 2 * Math.pi * cpt/maximum
first = multiply_elements(first_vector, Math.cos(theta))
second = multiply_elements(second_vector, Math.sin(theta))
l.append(sum_elements(sum_elements(first, second), center))
return l
center1 = multiply_elements([1,0,0],2)
center2 = multiply_elements([0,1,0],2)
center3 = multiply_elements([-1,0,0],2)
center4 = multiply_elements([0,-1,0],2)
c1 = gen_circle(center1, [0,0,1], [0,1,0])
c2 = gen_circle(center2, [0,0,1], [1,0,0])
c3 = gen_circle(center3, [0,0,1], [0,-1,0])
c4 = gen_circle(center4, [0,0,1], [-1,0,0])
print_list(center1, c1, "c1")
print()
print_list(center2, c2, "c2")
print()
print_list(center3, c3, "c3")
print()
print_list(center4, c4, "c4")