def __init__(self, width=None, height=None): NodeComponent.__init__(self) if width is None: width = Settings.get('DisplaySettings','resolution')[0] if height is None: height = Settings.get('DisplaySettings','resolution')[1] self._width = width self._height = height self._near_dist = 1.0 self._near_width = 0.0 self._near_height = 0.0 self._far_dist = 1000.0 self._far_width = 0.0 self._far_height = 0.0 self._aspect = self._width / float(self._height) #self._fov = 75.0 self._fov = 60.0 self._frustum_planes = [] # Build Near/Far Planes self._calc_near_far() # Internal Stats self._num_inside = 0 self._num_outside = 0 self._num_intersect = 0 # Debug self._update_frustum = True if Settings.has_option('RenderSettings','update_frustum'): self._update_frustum = Settings.get('RenderSettings','update_frustum') else: Settings.set('RenderSettings','update_frustum', self._update_frustum) self._top = None self._bottom = None self._left = None self._right = None self._verts = [] self._gizmos = None self._projection_matrix = None
def __init__(self): WindowRenderer.__init__(self) self._meshes = [] self._has_initialised = False self._camera = None self._scene_root = None self._print_font = None self._shader_manager = None self._ui_manager = None # Render Settings self._rendersettings = RenderSettings.get_instance() if not Settings.has_option('RenderSettings','wireframe'): Settings.set('RenderSettings','wireframe', False) if not Settings.has_option('RenderSettings','grid'): Settings.set('RenderSettings','grid', False) if not Settings.has_option('RenderSettings','draw_bounds'): Settings.set('RenderSettings','draw_bounds', False) # Render Listener to allow access to settings self._listener = RenderListener(self) # For FPS Calc self._last_time = 0.0 self._fatal_error_displayed = False # Back Colour self._back_colour = Preset.lightgrey # Nodes queued for rendering. self._render_queue = []
def _build_ui(self): stats_layout = FoldingBox('stats', content= # each box needs a content layout VLayout(children = [ Label('0000.0 fps', name='fps_label'), HLayout(children= [ Label('MoUI:', hexpand=False), Label('', name='mouse_over') ]), ]) ) wf = False sg = True sb = False uf = True if Settings.has_option('RenderSettings','wireframe'): wf = Settings.get('RenderSettings','wireframe') if Settings.has_option('RenderSettings','grid'): sg = Settings.get('RenderSettings','grid') if Settings.has_option('RenderSettings','draw_bounds'): sb = Settings.get('RenderSettings','draw_bounds') if Settings.has_option('RenderSettings','update_frustum'): uf = Settings.get('RenderSettings','update_frustum') settings_layout = FoldingBox('settings', content= VLayout(children= [ # a checkbox, note the action function is provided directly Checkbox('Show wireframe', h=100, action=self.show_wireframe_action, value=wf), Checkbox('Show Grid', h=100, action=self.show_grid_action,value=sg), Checkbox('Show Bounds', h=100, action=self.show_bounds_action,value=sb), Checkbox('Update Frustum', h=100, action=self.update_frustum_action,value=uf), Button('Quit', action=self.quit_action), ]) ) self._dialog = Dialogue('Inspector', x=20, y=550, content= VLayout(autosizex=True, hpadding=0, children= [ stats_layout, settings_layout ]) ) # self._console = Dialogue('Python console', self._console = Console('Python Console', x=20, y=50, # content=VLayout(autosizex=True, # hpadding=0, # children= # [ # Label('text\nsome\nthing',w=390, h=300), # TextInput(text=">>>", w=390) # ]) ) self._frame.add(self._dialog) # Setup the UI console logger self._ui_log_listener = LogListener() self._ui_log_listener.set_log_func(self._console.new_line) self._frame.add(self._console) self._mouse_over_label = self._frame.get_element_by_name('mouse_over') self._fps_label = self._frame.get_element_by_name('fps_label')