예제 #1
0
파일: Box.py 프로젝트: ekremoztrk/CENG-487
    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
예제 #2
0
        
        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)

])