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), ]