def create_pyramid(): primitives = [] # create the sphere primitive material = None object_to_world = Transform() world_to_object = Transform() sphere = Sphere(object_to_world, world_to_object, False, 1.0, -1.0, 1.0, 360) primitive = GeometricPrimitive(sphere, material, None) # now create the instances # create the objects, with this layout (shown in 2D) # O O O O level 0, width 4, pos_x -6 # O O O level 1, width 3, pos_x -4 # O O level 2, width 2, pos_x -2 # O level 3, width 1, pos_x 0 for level in range(4): width_array = 4 - level start_pos = Point(-2.0 * (3 - level), -2.0 * (3 - level), level * 2.0) for i in range(width_array): start_pos_i = start_pos + i * Vector(2.0, 0.0, 0.0) for j in range(width_array): pos = start_pos_i + j * Vector(0.0, 2.0, 0.0) transform = translate(pos).inverse() world_to_primitive = AnimatedTransform(transform, 0.0, transform, 1.0) instance = TransformedPrimitive(primitive, world_to_primitive) primitives.append(instance) return primitives
def __init__(self): """Default constructor for Intersection.""" self.dg = DifferentialGeometry() self.primitive = None self.world_to_object = Transform() self.object_to_world = Transform() self.shape_id = 0 self.primitive_id = 0 self.ray_epsilon = 0.0
def test_inverse(self): m1 = scale(2.0, 3.0, 4.0) m2 = scale(1.0/2.0, 1.0/3.0, 1.0/4.0) self.assertEqual(m1.inverse(), m2) self.assertEqual(m1.m_inv, m2.m) self.assertEqual(m2.m_inv, m1.m) m3 = translate(Point(5, 6, 7)) * scale(2, -3 , 4) * rotate(17, Vector(-1, 4, -2)) m4 = m3.inverse() identity = Transform() self.assertTrue((m3*m4).is_identity()) self.assertTrue((m4*m3).is_identity())
def __init__(self, name, vertices, vertex_indices, normals, normal_indices, transform=None): self.name = name # we have triangle mesh assert len(vertex_indices) % 3 == 0 assert len(normal_indices) == len(vertex_indices) self.v = np.array(vertices, dtype=np.single) self.n = np.array(normals, dtype=np.single) self.vi = np.array(vertex_indices, dtype=np.uint32) self.ni = np.array(normal_indices, dtype=np.uint32) + len(vertices) self.coords = np.concatenate((self.v, self.n)) self.indices = np.concatenate((self.vi, self.ni)) self.normal_index_offset = len(vertex_indices) self.transform = transform or Transform()
import logging from core.extract import Extract from core.load import Load from core.transform import Transform from utils.file_tools import FileTools from utils import log_tools log_tools.ajustar_log() transform = Transform(key_google_maps='key') load = Load() file_tools = FileTools() file_tools.diretorio_arquivos = 'resources' file_tools.diretorio_arquivos_movidos = 'resources/arquivos_extraidos' while True: logging.info(f'Escaneando diretório: ({file_tools.diretorio_arquivos})') arquivos = file_tools.escanear_diretorio(intervalo=0.5) if len(arquivos) > 0: logging.info(f'Arquivo txt encontrado: ({arquivos[0]})') lista_de_coordenadas = Extract('resources/' + arquivos[0]).get_lista_de_coordenadas() logging.info(f'Extraído conteúdo do arquivo: ({arquivos[0]})') for latitude, longitude in lista_de_coordenadas: