v1.1.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Modules Pages
Public Member Functions | Static Public Member Functions | List of all members
Sifteo::CubeSet Class Reference

An unordered set of cubes. More...

#include <sifteo/cube.h>

Inherits Sifteo::BitArray< _SYS_NUM_CUBE_SLOTS >.

Public Member Functions

 CubeSet (const BitArray< _SYS_NUM_CUBE_SLOTS > &bits)
 Implicit conversion from a BitArray of the correct size.
 
 CubeSet ()
 Create an empty CubeSet.
 
 CubeSet (CubeID cube)
 Create a CubeSet with a single CubeID in it.
 
 CubeSet (CubeID begin, CubeID end)
 Create a new CubeSet with a range of cubes. More...
 
uint32_t mask () const
 Getter for the underlying bitmask. More...
 
 operator _SYSCubeIDVector () const
 Implicit conversion to _SYSCubeIDVector, for use in low-level system calls.
 
void setMask (uint32_t mask)
 Setter for the underlying bitmask. More...
 
- Public Member Functions inherited from Sifteo::BitArray< _SYS_NUM_CUBE_SLOTS >
iterator begin () const
 Return an STL-style iterator for this array.
 
 BitArray ()
 Create a new empty BitArray.
 
 BitArray (unsigned index)
 Create a new BitArray with a single bit marked.
 
 BitArray (unsigned begin, unsigned end)
 Create a new BitArray with a range of bits marked. More...
 
void clear (unsigned index)
 Clear (set to 0) a single bit.
 
void clear ()
 Clear (set to 0) all bits in the array.
 
bool clearFirst (unsigned &index)
 Find and clear the lowest marked bit. More...
 
bool clearN (unsigned &index, unsigned n)
 Find and clear the Nth lowest marked bit. More...
 
unsigned count () const
 How many bits are marked in this vector?
 
bool empty () const
 Is every bit in this array set to zero?
 
iterator end () const
 Return an STL-style iterator for this array.
 
bool findFirst (unsigned &index) const
 Find the lowest index where there's a marked (1) bit. More...
 
void mark (unsigned index)
 Mark (set to 1) a single bit.
 
void mark ()
 Mark (set to 1) all bits in the array.
 
BitArray< tSize > operator& (const BitArray< tSize > &other) const
 Bitwise AND of two BitArrays of the same size.
 
BitArray< tSize > operator^ (const BitArray< tSize > &other) const
 Bitwise XOR of two BitArrays of the same size.
 
BitArray< tSize > operator| (const BitArray< tSize > &other) const
 Bitwise OR of two BitArrays of the same size.
 
BitArray< tSize > operator~ () const
 Negate a BitArray, returning a new array in which each bit is inverted.
 
bool test (unsigned index) const
 Is a particular bit marked?
 

Static Public Member Functions

static CubeSet connected ()
 Return a CubeSet containing all connected cubes which are visible to the current application. More...
 
- Static Public Member Functions inherited from Sifteo::BitArray< _SYS_NUM_CUBE_SLOTS >
static unsigned size ()
 Retrieve the size of this array in bits, always constant at compile-time.
 

Detailed Description

An unordered set of cubes.

A CubeSet can be used with API functions anywhere a _SYSCubeIDVector is expected, and you can iterate over a CubeSet using C++11 style iteration.

Constructor & Destructor Documentation

Sifteo::CubeSet::CubeSet ( CubeID  begin,
CubeID  end 
)
inlineexplicit

Create a new CubeSet with a range of cubes.

This is a half-open interval. All IDs >= 'begin' and < 'end' are in the set.

Member Function Documentation

static CubeSet Sifteo::CubeSet::connected ( )
inlinestatic

Return a CubeSet containing all connected cubes which are visible to the current application.

The number of available cubes will always be within the limits set by your Metadata::cubeRange(). Furthermore, returned cube IDs are all guaranteed to be less than the maximum number of cubes defined in your range. If your code supports at most 6 cubes, for instance, it's perfectly fine to declare 6-element arrays and index them with any CubeID in this set.

The returned CubeSet is guaranteed not to change until the relevant connection and/or disconnection events have been dispatched to your application.

uint32_t Sifteo::CubeSet::mask ( ) const
inline

Getter for the underlying bitmask.

Use CubeID::bit() to match a cube to this.

void Sifteo::CubeSet::setMask ( uint32_t  mask)
inline

Setter for the underlying bitmask.

Validates that the bit is in the CUBE_ALLOCATION range, but not necessarily connected.


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