def create_primitive_box(self, quadlength): initial = mat3d([[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) rotation_mat3d = mat3d.rotation_yz_matrix(initial, 0.01) square1 = objct( vec3d(0.0, 0.0, 0.0, 1.0), # Position [ # Vertices vec3d(quadlength, quadlength, quadlength, 1.0), vec3d(quadlength, quadlength, -1 * quadlength, 1.0), vec3d(quadlength, -quadlength, -quadlength, 1.0), vec3d(quadlength, -quadlength, quadlength, 1.0), ], [ # matrix stack mat3d.translating_matrix(initial, -1, 1.0, 0.0), rotation_mat3d, mat3d.translating_matrix(initial, 1.0, -1.0, 0.0) ]) square2 = objct( vec3d(0.0, 0.0, 0.0, 1.0), # Position [ # Vertices vec3d(quadlength, quadlength, quadlength, 1.0), vec3d(-quadlength, quadlength, quadlength, 1.0), vec3d(-quadlength, -quadlength, quadlength, 1.0), vec3d(quadlength, -quadlength, quadlength, 1.0), ], [ # matrix stack mat3d.translating_matrix(initial, -1, 1.0, 0.0), rotation_mat3d, mat3d.translating_matrix(initial, 1.0, -1.0, 0.0) ]) square3 = objct( vec3d(0.0, 0.0, 0.0, 1.0), # Position [ # Vertices vec3d(quadlength, quadlength, quadlength, 1.0), vec3d(-quadlength, quadlength, quadlength, 1.0), vec3d(-quadlength, quadlength, -quadlength, 1.0), vec3d(quadlength, quadlength, -quadlength, 1.0), ], [ # matrix stack mat3d.translating_matrix(initial, -1, 1.0, 0.0), rotation_mat3d, mat3d.translating_matrix(initial, 1.0, -1.0, 0.0) ]) square4 = objct( vec3d(0.0, 0.0, 0.0, 1.0), # Position [ # Vertices vec3d(-quadlength, quadlength, quadlength, 1.0), vec3d(-quadlength, quadlength, -quadlength, 1.0), vec3d(-quadlength, -quadlength, -quadlength, 1.0), vec3d(-quadlength, -quadlength, quadlength, 1.0), ], [ # matrix stack mat3d.translating_matrix(initial, -1, 1.0, 0.0), rotation_mat3d, mat3d.translating_matrix(initial, 1.0, -1.0, 0.0) ]) square5 = objct( vec3d(0.0, 0.0, 0.0, 1.0), # Position [ # Vertices vec3d(-quadlength, -quadlength, -quadlength, 1.0), vec3d(quadlength, -quadlength, -quadlength, 1.0), vec3d(quadlength, -quadlength, quadlength, 1.0), vec3d(-quadlength, -quadlength, quadlength, 1.0), ], [ # matrix stack mat3d.translating_matrix(initial, -1, 1.0, 0.0), rotation_mat3d, mat3d.translating_matrix(initial, 1.0, -1.0, 0.0) ]) square6 = objct( vec3d(0.0, 0.0, 0.0, 1.0), # Position [ # Vertices vec3d(-quadlength, quadlength, -quadlength, 1.0), vec3d(quadlength, quadlength, -quadlength, 1.0), vec3d(quadlength, -quadlength, -quadlength, 1.0), vec3d(-quadlength, -quadlength, -quadlength, 1.0), ], [ # matrix stack mat3d.translating_matrix(initial, -1, 1.0, 0.0), rotation_mat3d, mat3d.translating_matrix(initial, 1.0, -1.0, 0.0) ]) prim = Primitive3D( [square1, square2, square3, square4, square5, square6]) return prim
face_list = [] for face in self.faces: index_list = [face[0]-1,face[1]-1,face[2]-1,face[3]-1] face_list.append(index_list) output_points, output_faces = self.vertices,face_list for i in range(numdivision-1): output_points, output_faces = cmc_subdiv(output_points, output_faces) self.shapes = self.face_and_vertices_to_shapes(output_faces,output_points) initial = mat3d([[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]) square1 = objct(vec3d(1.1, 1.0, -8.0, 1.0), # Position [ # Vertices vec3d(-1.4, 1.0, -0.4, 1.0), vec3d(1.0, 1.0, -1.0, 1.0), vec3d(1.0, -1.0, -1.0, 1.0), vec3d(-1.4, -1.0, -0.4, 1.0), ], [ # matrix stack mat3d.translating_matrix(initial,-1, 1.0, 0.0), mat3d.rotation_zx_matrix(initial,0.01), mat3d.translating_matrix(initial,1.0, -1.0, 0.0) ])