def set_view_up_direction(self, viewer_up): if abs(viewer_up.y) < 0.999: cp = cross_product(viewer_up, Vector3(0, 0, 0)) cp = normalized(cp) self.geo_to_viewer_transform = create_rotation(math.acos(viewer_up.y), cp) else: self.geo_to_viewer_transform = create_identity() self.must_update_transformed_orientation = True
class RenderState(object): ''' Contains all the state necessary for the SkyRenderer to render properly. ''' camera_pos = GeocentricCoordinates(0, 0, 0) look_dir = GeocentricCoordinates(1, 0, 0) up_dir = GeocentricCoordinates(0, 1, 0) radius_of_view = 45.0 # in degrees up_angle = 0.0 cos_up_angle = 1.0 sin_up_angle = 0.0 screen_width = 480 # originally 100 screen_height = 800 # originally 100 transform_to_device = create_identity() transform_to_screen = create_identity() night_vision_mode = False active_sky_region_set = None def set_camera_pos(self, pos): self.camera_pos = pos.copy() def set_look_dir(self, new_dir): self.look_dir = new_dir.copy() def set_up_dir(self, new_dir): self.up_dir = new_dir.copy() def set_up_angle(self, angle): self.up_angle = angle self.cos_up_angle = math.cos(angle) self.sin_up_angle = math.sin(angle) def set_screen_size(self, width, height): self.screen_width = width self.screen_height = height def set_tranformation_matrices(self, to_device, to_screen): self.transform_to_device = to_device self.transform_to_screen = to_screen def __init__(self): '''
def __init__(self, layer_id, new_texture_manager): ''' Constructor ''' RendererObjectManager.__init__(self, layer_id, new_texture_manager) self.width = 2 self.height = 2 self.geo_to_viewer_transform = create_identity() self.look_dir = Vector3(0, 0, 0) self.up_dir = Vector3(0, 1, 0) self.transformed_look_dir = Vector3(0, 0, 0) self.transformed_up_dir = Vector3(0, 1, 0) #search_helper = SearchHelper() self.dark_quad = None #self.search_arrow = SearchArrow() #crosshair = CrosshairOverlay()