Ejemplo n.º 1
0
    def _calc_corners(self):
        # Calculate the Cubic coordinates of this quad
        x0, y0, x1, y1, face = CubeSphereMap.get_address_bounds(self._name)

        self._corners = [x0, y0, x1, y1]
        self._centre_coords = CubeSphereMap.get_address_centre(self._name)
        self._quad_centres = [
                                CubeSphereMap.get_address_centre(self._name+'A'),
                                CubeSphereMap.get_address_centre(self._name+'B'),
                                CubeSphereMap.get_address_centre(self._name+'D'),
                                CubeSphereMap.get_address_centre(self._name+'C')
                             ]

        # if self._root:
        #     self._corners.append(0.0) #tl x
        #     self._corners.append(0.0) #tl y
        #     self._corners.append(1.0) #br x
        #     self._corners.append(1.0) #br y
        # else:
        #     parent_corners = self.transform.parent.node.corners
            
        #     if self._quad == QuadName.TL:
        #         self._corners.append(parent_corners[0])
        #         self._corners.append(parent_corners[1])
        #         self._corners.append(parent_corners[0] + (parent_corners[2] - parent_corners[0]) * 0.5 )
        #         self._corners.append(parent_corners[1] + (parent_corners[3] - parent_corners[1]) * 0.5 )
                
        #     elif self._quad == QuadName.TR:
        #         self._corners.append(parent_corners[0] + (parent_corners[2] - parent_corners[0]) * 0.5)
        #         self._corners.append(parent_corners[1])
        #         self._corners.append(parent_corners[2])
        #         self._corners.append(parent_corners[1] + (parent_corners[3] - parent_corners[1]) * 0.5 )
                
        #     elif self._quad == QuadName.BL:
        #         self._corners.append(parent_corners[0])
        #         self._corners.append(parent_corners[1] + (parent_corners[3] - parent_corners[1]) * 0.5)
        #         self._corners.append(parent_corners[0] + (parent_corners[2] - parent_corners[0]) * 0.5)
        #         self._corners.append(parent_corners[3])
                
            
        #     elif self._quad == QuadName.BR:
        #         self._corners.append(parent_corners[0] + (parent_corners[2] - parent_corners[0]) * 0.5)
        #         self._corners.append(parent_corners[1] + (parent_corners[3] - parent_corners[1]) * 0.5)
        #         self._corners.append(parent_corners[2])
        #         self._corners.append(parent_corners[3])
                
                
        # mid_x = (self._corners[2] - self._corners[0]) / 2
        # mid_y = (self._corners[3] - self._corners[1]) / 2
        
        # self._centre_coords = [(self._corners[0] + mid_x), (self._corners[1] + mid_y)]
        
        # self._quad_centres = [ [self._corners[0] + (mid_x/2), self._corners[1] + (mid_y/2)], #TL
        #                        [self._corners[2] - (mid_x/2), self._corners[1] + (mid_y/2)], #TR
        #                        [self._corners[2] - (mid_x/2), self._corners[3] - (mid_y/2)], #BR
        #                        [self._corners[0] + (mid_x/2), self._corners[3] - (mid_y/2)]  #BL
        #                      ]
        
        # Get world positions for centres of child quads
        self._child_pos = [CubeSphereMap.get_sphere_position(self._quad_centres[QuadName.TL][0],
                                                               self._quad_centres[QuadName.TL][1],
                                                               self._face,
                                                               self._sphere_parent.radius),
                             CubeSphereMap.get_sphere_position(self._quad_centres[QuadName.TR][0],
                                                               self._quad_centres[QuadName.TR][1],
                                                               self._face,
                                                               self._sphere_parent.radius),
                             CubeSphereMap.get_sphere_position(self._quad_centres[QuadName.BR][0],
                                                               self._quad_centres[QuadName.BR][1],
                                                               self._face,
                                                               self._sphere_parent.radius),
                             CubeSphereMap.get_sphere_position(self._quad_centres[QuadName.BL][0],
                                                               self._quad_centres[QuadName.BL][1],
                                                               self._face,
                                                               self._sphere_parent.radius),
                             ]