Viewport.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /******************************************************************************/
  2. const_mem_addr STRUCT(Viewport , GuiObj) // Viewport !! must be stored in constant memory address !!
  3. //{
  4. // saved
  5. Color rect_color; // rectangle color, default=Gui.borderColor
  6. // following members are not saved in the 'save' method
  7. FOV_MODE fov_mode ; // field of view mode , default=D.viewFovMode()
  8. Flt fov , // field of view , default=D.viewFov ()
  9. from , // viewport near clip plane, default=D.viewFrom ()
  10. range ; // viewport far clip plane, default=D.viewRange ()
  11. void (*draw_func)(Viewport&); // pointer to drawing function
  12. // manage
  13. Viewport& del ( ); // delete
  14. Viewport& create( void (*draw)(Viewport&)=null, Ptr user=null); // create
  15. Viewport& create(C Rect &rect, void (*draw)(Viewport&)=null, Ptr user=null) {create(draw, user).rect(rect); return T;} // create
  16. Viewport& create(C Viewport &src ); // create from 'src'
  17. // operations
  18. void setDisplayView()C; // activate display viewport settings from current viewport parameters
  19. // main
  20. virtual GuiObj* test(C GuiPC &gpc, C Vec2 &pos, GuiObj* &mouse_wheel); // test if 'pos' screen position intersects with the object, by returning pointer to object or its children upon intersection and null in case no intersection, 'mouse_wheel' may be modified upon intersection either to the object or its children or null
  21. virtual void draw(C GuiPC &gpc); // draw object
  22. #if EE_PRIVATE
  23. void zero ();
  24. void reset();
  25. #endif
  26. ~Viewport() {del();}
  27. Viewport();
  28. protected:
  29. virtual Bool save(File &f, CChar *path=null)C;
  30. virtual Bool load(File &f, CChar *path=null) ;
  31. };
  32. /******************************************************************************/