Free Electron
Public Types | Public Member Functions | List of all members
fe::ext::ViewI Class Referenceabstract

A rendering region. More...

#include <ViewI.h>

Inheritance diagram for fe::ext::ViewI:
Inheritance graph
[legend]

Public Types

enum  Projection {
  e_none,
  e_perspective,
  e_ortho,
  e_current
}
 

Public Member Functions

virtual void setWindow (sp< WindowI > a_spWindowI)=0
 Specify window where to draw. More...
 
virtual sp< WindowIwindow (void) const =0
 
virtual void setViewport (const Box2i &a_rect)=0
 Define region where to draw. More...
 
virtual Box2i viewport (void) const =0
 
virtual sp< CameraIcamera (void) const =0
 Get current camera. More...
 
virtual void setCamera (sp< CameraI > a_spCameraI)=0
 
virtual void use (Projection a_projection)=0
 
virtual void setProjection (Projection a_projection)=0
 Set whether ortho or perspective. More...
 
virtual Projection projection (void) const =0
 Get current projection. More...
 
virtual SpatialVector unproject (Real a_winx, Real a_winy, Real a_winz, Projection a_projection=e_current) const =0
 Determine 3D location of screen coordinate. More...
 
virtual SpatialVector project (const SpatialVector &a_point, Projection a_projection=e_current) const =0
 Project 3D location into screen coordinates. More...
 
virtual Real pixelSize (const SpatialVector &a_center, Real a_radius) const =0
 Estimate object's screen size. More...
 
virtual Real worldSize (const SpatialVector &a_center, Real a_pixels) const =0
 Estimate object's world size. More...
 
virtual void screenAlignment (SpatialTransform &a_rotation)=0
 Return a screen aligned rotation. More...
 
virtual void screenInfo (Real &a_screenScale, SpatialVector &a_screenLocation, const SpatialTransform &a_rotation, const SpatialVector &a_location)=0
 Given a screen aligned rotation and world location, return the screen projected location and scale. More...
 
virtual void setScissor (const Box2i *a_pBox)=0
 Clip all drawing operations to a 2D box. More...
 
virtual const Box2iscissor (void) const =0
 Get current scissor region. More...
 
- Public Member Functions inherited from fe::Component
const Stringname (void) const
 Return the components chosen name. More...
 
const String verboseName (void) const
 Return the annotated chosen name. More...
 
void setName (const String &name)
 Rename the component to anything you want. More...
 
hp< Registryregistry (void) const
 Get the Registry that created this component. More...
 
void adjoin (sp< Component > spComponent)
 Tie this component's lifetime to another. More...
 
sp< Componentcreate (const String &implementation, BWORD quiet=FALSE) const
 Convienience function to registry()->create() More...
 
void disjoin (void)
 Untie component from Hub, if connected. More...
 
String factoryName (void)
 
void setLibrary (sp< Library > spLibrary)
 Store a reference to the library used to instantiate this component. More...
 
sp< Librarylibrary (void)
 Get the library that created the component. More...
 
void setFactoryIndex (I32 a_factoryIndex)
 Set the library's factory index. More...
 
I32 factoryIndex (void)
 Get the library's factory index. More...
 
void setSingleton (BWORD set)
 Specify whether component is a singleton. More...
 
BWORD isSingleton (void)
 Return whether component is a singleton. More...
 
virtual void acquire (void)
 Specialized reference increment. More...
 
virtual void release (void)
 Specialized reference decrement. More...
 
- Public Member Functions inherited from fe::Handled< Component >
const hp< Component > & getHandle (void) const
 Get a safe handle to this object. More...
 
- Public Member Functions inherited from fe::Protectable
virtual I32 protection (void) const
 
virtual void protect (void)
 
virtual void unprotect (void)
 
virtual Protectableclone (Protectable *pInstance=NULL)
 
- Public Member Functions inherited from fe::Counted
virtual void acquire (int &rCount)
 Increment the reference count (and get the count) More...
 
virtual void abandon (void)
 Decrement the reference count. More...
 
int count (void) const
 Return the count of references. More...
 
void setName (const String &)
 
void trackReference (void *pReference, String what)
 
void untrackReference (void *pReference)
 
void registerRegion (void *pT, U32 bytes)
 
- Public Member Functions inherited from fe::Initialized
void initializeAll (void)
 
void setActive (bool a_active)
 

Additional Inherited Members

- Static Public Member Functions inherited from fe::Counted
static String reportTracker (void)
 
static U32 trackerCount (void)
 
- Protected Types inherited from fe::Initialized
typedef void(* InitializeFunction) (Initialized *)
 
- Protected Member Functions inherited from fe::Handled< Component >
void abandonHandle (void)
 
- Protected Member Functions inherited from fe::Counted
int releaseInternal (void)
 Decrement the reference count. More...
 
void suppressReport (void)
 
- Protected Member Functions inherited from fe::Initialized
void addInitializer (InitializeFunction function)
 

Detailed Description

A rendering region.

Member Function Documentation

◆ camera()

virtual sp<CameraI> fe::ext::ViewI::camera ( void  ) const
pure virtual

Get current camera.

This is the most recent camera set with setCamera().

Implemented in fe::ext::ViewCommon.

Referenced by fe::ext::ViewOpenGL::pixelSize(), and fe::ext::ViewOpenGL::worldSize().

◆ pixelSize()

virtual Real fe::ext::ViewI::pixelSize ( const SpatialVector a_center,
Real  a_radius 
) const
pure virtual

Estimate object's screen size.

The input is a sphere center and radius.

Implemented in fe::ext::ViewCommon, and fe::ext::ViewOpenGL.

◆ project()

virtual SpatialVector fe::ext::ViewI::project ( const SpatialVector a_point,
Projection  a_projection = e_current 
) const
pure virtual

Project 3D location into screen coordinates.

By default, the current Projection determines the projection method.

Window coordinates orginate from bottom left.

Implemented in fe::ext::ViewCommon, and fe::ext::ViewOpenGL.

◆ projection()

virtual Projection fe::ext::ViewI::projection ( void  ) const
pure virtual

Get current projection.

Implemented in fe::ext::ViewCommon.

◆ scissor()

virtual const Box2i* fe::ext::ViewI::scissor ( void  ) const
pure virtual

Get current scissor region.

NULL indicates no scissoring.

Implemented in fe::ext::ViewCommon, and fe::ext::ViewOpenGL.

◆ screenAlignment()

virtual void fe::ext::ViewI::screenAlignment ( SpatialTransform a_rotation)
pure virtual

Return a screen aligned rotation.

Implemented in fe::ext::ViewCommon.

◆ screenInfo()

virtual void fe::ext::ViewI::screenInfo ( Real &  a_screenScale,
SpatialVector a_screenLocation,
const SpatialTransform a_rotation,
const SpatialVector a_location 
)
pure virtual

Given a screen aligned rotation and world location, return the screen projected location and scale.

Useful for normalizing object scale to the screen.

Implemented in fe::ext::ViewCommon.

◆ setProjection()

virtual void fe::ext::ViewI::setProjection ( Projection  a_projection)
pure virtual

Set whether ortho or perspective.

Implemented in fe::ext::ViewCommon.

◆ setScissor()

virtual void fe::ext::ViewI::setScissor ( const Box2i a_pBox)
pure virtual

Clip all drawing operations to a 2D box.

Use NULL pointer to stop scissoring.

Implemented in fe::ext::ViewCommon, and fe::ext::ViewOpenGL.

◆ setViewport()

virtual void fe::ext::ViewI::setViewport ( const Box2i a_rect)
pure virtual

Define region where to draw.

Implemented in fe::ext::ViewCommon.

◆ setWindow()

virtual void fe::ext::ViewI::setWindow ( sp< WindowI a_spWindowI)
pure virtual

Specify window where to draw.

Implemented in fe::ext::ViewCommon.

◆ unproject()

virtual SpatialVector fe::ext::ViewI::unproject ( Real  a_winx,
Real  a_winy,
Real  a_winz,
Projection  a_projection = e_current 
) const
pure virtual

Determine 3D location of screen coordinate.

By default, the current Projection determines the projection method.

Window coordinates orginate from bottom left.

Implemented in fe::ext::ViewCommon, and fe::ext::ViewOpenGL.

◆ worldSize()

virtual Real fe::ext::ViewI::worldSize ( const SpatialVector a_center,
Real  a_pixels 
) const
pure virtual

Estimate object's world size.

The input is a sphere center and projected pixel radius.

Implemented in fe::ext::ViewCommon, and fe::ext::ViewOpenGL.


The documentation for this class was generated from the following file: