Leap C++ API Reference  0.7.9
Leap::ScreenList Class Reference

The ScreenList class represents a list of Screen objects. More...

Inherits Leap::Interface.

Public Types

typedef ConstListIterator
< ScreenList, Screen
const_iterator
 A C++ iterator type for this ScreenList objects.
 

Public Member Functions

const_iterator begin () const
 The C++ iterator set to the beginning of this ScreenList.
 
Screen closestScreen (const Vector &position) const
 Gets the Screen closest to the specified position.
 
Screen closestScreenHit (const Pointable &pointable) const
 Gets the closest Screen intercepting a ray projecting from the specified Pointable object.
 
Screen closestScreenHit (const Vector &position, const Vector &direction) const
 Gets the closest Screen intercepting a ray projecting from the specified position in the specified direction.
 
int count () const
 Returns the number of screens in this list.
 
bool empty () const
 Deprecated.
 
const_iterator end () const
 The C++ iterator set to the end of this ScreenList.
 
bool isEmpty () const
 Reports whether the list is empty.
 
Screen operator[] (int index) const
 Access a list member by its position in the list.
 
 ScreenList ()
 Constructs an empty list of screens.
 

Detailed Description

The ScreenList class represents a list of Screen objects.

The list always contains at least one entry representing the default screen. If the user has not registered the location of this default screen, then the coordinates, directions, and other values reported by the functions in its Screen object will not be accurate. Other monitor screens only appear in the list if their positions have been registered using the Leap Screen Locator.

Get a ScreenList object by calling Controller::locatedScreens().

ScreenList screens = controller.locatedScreens();

Member Typedef Documentation

typedef ConstListIterator<ScreenList, Screen> Leap::ScreenList::const_iterator

A C++ iterator type for this ScreenList objects.

Constructor & Destructor Documentation

Leap::ScreenList::ScreenList ( )

Constructs an empty list of screens.

Member Function Documentation

const_iterator Leap::ScreenList::begin ( ) const

The C++ iterator set to the beginning of this ScreenList.

Screen Leap::ScreenList::closestScreen ( const Vector position) const

Gets the Screen closest to the specified position.

The specified position is projected along each screen's normal vector onto the screen's plane. The screen whose projected point is closest to the specified position is returned. Call Screen::project(position) on the returned Screen object to find the projected point.

Frame frame = controller.frame();
if (frame.pointables().count() > 0) {
Pointable pointable = frame.pointables()[0];
ScreenList screens = controller.locatedScreens();
Screen screen = screens.closestScreen(pointable.tipPosition());
}
Parameters
positionThe position from which to check for screen projection.
Returns
The closest Screen onto which the specified position is projected.
Screen Leap::ScreenList::closestScreenHit ( const Pointable pointable) const

Gets the closest Screen intercepting a ray projecting from the specified Pointable object.

The projected ray emanates from the Pointable tipPosition along the Pointable's direction vector. If the projected ray does not intersect any screen surface directly, then the Leap checks for intersection with the planes extending from the surfaces of the known screens and returns the Screen with the closest intersection.

Frame frame = controller.frame();
if (frame.pointables().count() > 0) {
Pointable pointable = frame.pointables()[0];
ScreenList screens = controller.locatedScreens();
Screen screen = screens.closestScreenHit(pointable);
}

If no intersections are found (i.e. the ray is directed parallel to or away from all known screens), then an invalid Screen object is returned.

Note: Be sure to test whether the Screen object returned by this method is valid. Attempting to use an invalid Screen object will lead to incorrect results.

Parameters
pointableThe Pointable object to check for screen intersection.
Returns
The closest Screen toward which the specified Pointable object is pointing, or, if the pointable is not pointing in the direction of any known screen, an invalid Screen object.
Screen Leap::ScreenList::closestScreenHit ( const Vector position,
const Vector direction 
) const

Gets the closest Screen intercepting a ray projecting from the specified position in the specified direction.

The projected ray emanates from the position along the direction vector. If the projected ray does not intersect any screen surface directly, then the Leap checks for intersection with the planes extending from the surfaces of the known screens and returns the Screen with the closest intersection.

Frame frame = controller.frame();
if (frame.pointables().count() > 0) {
Pointable pointable = frame.pointables()[0];
ScreenList screens = controller.locatedScreens();
Screen screen = screens.closestScreen(pointable.tipPosition());
}

If no intersections are found (i.e. the ray is directed parallel to or away from all known screens), then an invalid Screen object is returned.

Note: Be sure to test whether the Screen object returned by this method is valid. Attempting to use an invalid Screen object will lead to incorrect results.

Parameters
positionThe position from which to check for screen intersection.
directionThe direction in which to check for screen intersection.
Returns
The closest Screen toward which the specified ray is pointing, or, if the ray is not pointing in the direction of any known screen, an invalid Screen object.
int Leap::ScreenList::count ( ) const

Returns the number of screens in this list.

Returns
The number of screens in this list.
bool Leap::ScreenList::empty ( ) const

Deprecated.

Use ScreenList::isEmpty() instead.

See Also
ScreenList::isEmpty()
const_iterator Leap::ScreenList::end ( ) const

The C++ iterator set to the end of this ScreenList.

bool Leap::ScreenList::isEmpty ( ) const

Reports whether the list is empty.

Returns
True, if the list has no members.
Screen Leap::ScreenList::operator[] ( int  index) const

Access a list member by its position in the list.

Parameters
indexThe zero-based list position index.
Returns
The Screen object at the specified index.