Homepage Demos Overview Downloads Tutorials Reference
Credits

RegionGenerator Class Reference

#include <RegionGenerator.h>

Inheritance diagram for RegionGenerator:

Inheritance graph
[legend]
List of all members.

Detailed Description

Connects regions of CMVision format runs in RLEGenerator.

Uses the CMVision library for main processing.

Uses fields in the RLEGenerator's runs to store region information. This means we don't have to make an extra copy of the data, but unfortunately also means these two stages are tightly coupled...

Similarly, this also accesses the color information of the runs, so the events received must be a SegmentedColorFilterBankEvents so that it can interpret the color information. Some statistical information will then be stored in the color struct to report the min region area, max region area, and number of regions.

Definition at line 23 of file RegionGenerator.h.

Public Types

typedef CMVision::region region
 using the CMVision library's region information

typedef CMVision::color_class_state region_stats
 using the CMVision library's color struct to store the region info


Public Member Functions

 RegionGenerator (EventBase::EventGeneratorID_t gid, unsigned int sid, unsigned int mysid)
 constructor

virtual ~RegionGenerator ()
 destructor

virtual void freeCaches ()
 deletes storage of cached images and marks it invalid

virtual void processEvent (const EventBase &event)
 see class notes above for what data this can handle

virtual unsigned int getBinSize () const
 calculates space needed to save - if you can't precisely add up the size, overestimate and things will still work.

virtual unsigned int LoadBuffer (const char buf[], unsigned int len)
virtual unsigned int SaveBuffer (char buf[], unsigned int len) const
 Save to a given buffer.

virtual const FilterBankGeneratorgetSourceGenerator () const
 returns the FilterBankGenerator this is receiving events from


Static Public Member Functions

std::string getClassDescription ()
 Gives a short description of what this class of behaviors does... you should override this (but don't have to).


Protected Types

typedef SegmentedColorFilterBankEvent::color_class_state color_class_state
 use the same color info as SegmentedColorFilterBankEvent (since that's what's supplying the color info)


Protected Member Functions

virtual void setDimensions ()
 resets the width, height, skip and stride parameters

virtual void setNumImages (unsigned int nLayers, unsigned int nChannels)
 resizes the filter bank information storage area, you should override this to do your setup and call it from your constructor

virtual unsigned char * createImageCache (unsigned int layer, unsigned int chan) const
 create new image data storage area for the cache - this is only called when the corresponding entry in images is NULL

virtual void calcImage (unsigned int layer, unsigned int chan) const
 should calculate new image data, only called when imageValids indicates the image being requested is dirty

virtual void destruct ()
 deletes the arrays


Protected Attributes

const FilterBankGeneratorsrc
 the generator of the last FilterBankEvent received

unsigned int srcNumColors
 number of colors available (from src->src, which should be SegmentedColorGenerator...)

color_class_statesrcColors
 colors information (from src->src, which should be SegmentedColorGenerator...)

region *** regions
 data storage for region information


Static Protected Attributes

const unsigned int MAX_REGIONS = 176*144/16
 maximum number of regions, value is from historical Vision sources


Private Member Functions

 RegionGenerator (const RegionGenerator &fbk)
 don't call

const RegionGeneratoroperator= (const RegionGenerator &fbk)
 don't call


Member Typedef Documentation

typedef SegmentedColorFilterBankEvent::color_class_state RegionGenerator::color_class_state [protected]
 

use the same color info as SegmentedColorFilterBankEvent (since that's what's supplying the color info)

Definition at line 48 of file RegionGenerator.h.

typedef CMVision::region RegionGenerator::region
 

using the CMVision library's region information

Definition at line 25 of file RegionGenerator.h.

Referenced by createImageCache(), LoadBuffer(), SaveBuffer(), and setNumImages().

typedef CMVision::color_class_state RegionGenerator::region_stats
 

using the CMVision library's color struct to store the region info

Definition at line 26 of file RegionGenerator.h.

Referenced by calcImage(), createImageCache(), LoadBuffer(), and SaveBuffer().


Constructor & Destructor Documentation

RegionGenerator::RegionGenerator EventBase::EventGeneratorID_t  gid,
unsigned int  sid,
unsigned int  mysid
 

constructor

Definition at line 10 of file RegionGenerator.cc.

RegionGenerator::~RegionGenerator  )  [virtual]
 

destructor

Definition at line 16 of file RegionGenerator.cc.

RegionGenerator::RegionGenerator const RegionGenerator fbk  )  [private]
 

don't call


Member Function Documentation

void RegionGenerator::calcImage unsigned int  layer,
unsigned int  chan
const [protected, virtual]
 

should calculate new image data, only called when imageValids indicates the image being requested is dirty

This is where you'll want to put your user-specific code for calculating the image data

Implements FilterBankGenerator.

Definition at line 223 of file RegionGenerator.cc.

unsigned char * RegionGenerator::createImageCache unsigned int  layer,
unsigned int  chan
const [protected, virtual]
 

create new image data storage area for the cache - this is only called when the corresponding entry in images is NULL

You should return the pointer you want stored in images to be returned by any calls to getFirstRow. Interpretation of the data it points to is dependant on the the generator which creates it

Implements FilterBankGenerator.

Definition at line 214 of file RegionGenerator.cc.

Referenced by LoadBuffer().

void RegionGenerator::destruct  )  [protected, virtual]
 

deletes the arrays

Reimplemented from FilterBankGenerator.

Definition at line 239 of file RegionGenerator.cc.

Referenced by ~RegionGenerator().

void RegionGenerator::freeCaches  )  [virtual]
 

deletes storage of cached images and marks it invalid

you should override this if the images cache pointer isn't actually an array of bytes... Don't forget to call it in your subclass's destructor or your version won't get called...

Reimplemented from FilterBankGenerator.

Definition at line 22 of file RegionGenerator.cc.

Referenced by LoadBuffer(), processEvent(), and ~RegionGenerator().

unsigned int RegionGenerator::getBinSize  )  const [virtual]
 

calculates space needed to save - if you can't precisely add up the size, overestimate and things will still work.

Returns:
number of bytes read/written, 0 if error (or empty)

Reimplemented from FilterBankGenerator.

Definition at line 61 of file RegionGenerator.cc.

std::string RegionGenerator::getClassDescription  )  [inline, static]
 

Gives a short description of what this class of behaviors does... you should override this (but don't have to).

Reimplemented from BehaviorBase.

Definition at line 33 of file RegionGenerator.h.

virtual const FilterBankGenerator* RegionGenerator::getSourceGenerator  )  const [inline, virtual]
 

returns the FilterBankGenerator this is receiving events from

Definition at line 45 of file RegionGenerator.h.

unsigned int RegionGenerator::LoadBuffer const char  buf[],
unsigned int  len
[virtual]
 

The LoadBuffer() functions of the included subclasses aren't tested, so don't assume they'll work without a little debugging...

Reimplemented from FilterBankGenerator.

Definition at line 74 of file RegionGenerator.cc.

const RegionGenerator& RegionGenerator::operator= const RegionGenerator fbk  )  [private]
 

don't call

void RegionGenerator::processEvent const EventBase event  )  [virtual]
 

see class notes above for what data this can handle

Reimplemented from FilterBankGenerator.

Definition at line 32 of file RegionGenerator.cc.

unsigned int RegionGenerator::SaveBuffer char  buf[],
unsigned int  len
const [virtual]
 

Save to a given buffer.

Parameters:
buf pointer to the memory where you should begin writing
len length of buf available. (this isn't all yours, constrain yourself to what you returned in getBinSize() )
Returns:
the number of bytes actually used

Reimplemented from FilterBankGenerator.

Definition at line 144 of file RegionGenerator.cc.

void RegionGenerator::setDimensions  )  [protected, virtual]
 

resets the width, height, skip and stride parameters

Definition at line 206 of file RegionGenerator.cc.

Referenced by processEvent().

void RegionGenerator::setNumImages unsigned int  nLayers,
unsigned int  nChannels
[protected, virtual]
 

resizes the filter bank information storage area, you should override this to do your setup and call it from your constructor

In general, it isn't expected that FilterBankGenerator's should necessarily be dynamically resizeable (although it would be nice), which is why this isn't public. If yours is, just add some pubic accessor functions which call this. In general, the included subclasses should be able to handle being resized, but there's no reason to do so since the system won't be changing its available resolutions at run time.

Reimplemented from FilterBankGenerator.

Definition at line 194 of file RegionGenerator.cc.

Referenced by processEvent(), and RegionGenerator().


Member Data Documentation

const unsigned int RegionGenerator::MAX_REGIONS = 176*144/16 [static, protected]
 

maximum number of regions, value is from historical Vision sources

Definition at line 49 of file RegionGenerator.h.

Referenced by calcImage(), createImageCache(), getBinSize(), and LoadBuffer().

region*** RegionGenerator::regions [protected]
 

data storage for region information

Definition at line 61 of file RegionGenerator.h.

Referenced by calcImage(), createImageCache(), destruct(), freeCaches(), LoadBuffer(), and setNumImages().

const FilterBankGenerator* RegionGenerator::src [protected]
 

the generator of the last FilterBankEvent received

Definition at line 57 of file RegionGenerator.h.

Referenced by getSourceGenerator(), processEvent(), and setDimensions().

color_class_state* RegionGenerator::srcColors [protected]
 

colors information (from src->src, which should be SegmentedColorGenerator...)

Definition at line 60 of file RegionGenerator.h.

Referenced by createImageCache(), and processEvent().

unsigned int RegionGenerator::srcNumColors [protected]
 

number of colors available (from src->src, which should be SegmentedColorGenerator...)

Definition at line 59 of file RegionGenerator.h.

Referenced by calcImage(), createImageCache(), LoadBuffer(), processEvent(), and SaveBuffer().


The documentation for this class was generated from the following files:
Tekkotsu v2.0
Generated Wed Jan 21 03:23:23 2004 by Doxygen 1.3.4