OSSIM - Open Source Software Image Map
Version 1.9.0 (20180803)
|
#include <ossimActiveEdgeTable.h>
Public Member Functions | |
ossimActiveEdgeTable () | |
void | addPolygon (const ossimPolygon &polygon) |
const std::list< ossimActiveEdgeTableNode > & | getActiveList () const |
ossim_int32 | getCurrentScanLine () const |
ossim_int32 | getYShift () const |
void | initializeActiveList () |
void | updateActiveEdges () |
void | mergeCurrentScanLine () |
void | printActiveEdgeList () const |
Protected Member Functions | |
void | createTable (const ossimPolygon &polygon) |
void | addEdgeToTable (const ossimActiveEdgeTableNode &edge, ossim_int32 scanLine) |
Protected Attributes | |
std::vector< std::list< ossimActiveEdgeTableNode > > | theTable |
std::list< ossimActiveEdgeTableNode > | theActiveList |
ossimIrect | theBoundingRect |
ossimIpt | theRectOrigin |
ossim_int32 | theLastScanLine |
ossim_int32 | theCurrentScanLine |
Friends | |
class | ossimActiveEdgeTableHelper |
This class is used in fast efficient scanliine rasterization. It will take a polygon and insert it into the table sorted by y's
Definition at line 64 of file ossimActiveEdgeTable.h.
ossimActiveEdgeTable::ossimActiveEdgeTable | ( | ) |
Definition at line 18 of file ossimActiveEdgeTable.cpp.
|
protected |
Definition at line 87 of file ossimActiveEdgeTable.cpp.
void ossimActiveEdgeTable::addPolygon | ( | const ossimPolygon & | polygon | ) |
Currently will only work on a single polygon. If you call this twice it currently will use the last called polygon and will wipe out the previous one.
Note: this is used for scanline rasterization and will round to integer values all vertices as they are initially added to the Active Edge Table.
Definition at line 23 of file ossimActiveEdgeTable.cpp.
References ossimPolygon::getVertexCount(), x, and y.
|
protected |
Definition at line 71 of file ossimActiveEdgeTable.cpp.
References ossimPolygon::getBoundingRect(), and ossimPolygon::getVertexCount().
const std::list<ossimActiveEdgeTableNode>& ossimActiveEdgeTable::getActiveList | ( | ) | const |
|
inline |
Definition at line 85 of file ossimActiveEdgeTable.h.
References theCurrentScanLine.
Referenced by ossimActiveEdgeTableHelper::getCurrentScanLine(), and ossimActiveEdgeTableHelper::getNextLineSegment().
|
inline |
Definition at line 89 of file ossimActiveEdgeTable.h.
References theRectOrigin, and ossimIpt::y.
Referenced by ossimActiveEdgeTableHelper::getYShift().
void ossimActiveEdgeTable::initializeActiveList | ( | ) |
Definition at line 93 of file ossimActiveEdgeTable.cpp.
References size.
Referenced by ossimActiveEdgeTableHelper::advanceScanLine().
void ossimActiveEdgeTable::mergeCurrentScanLine | ( | ) |
Definition at line 128 of file ossimActiveEdgeTable.cpp.
References size.
Referenced by ossimActiveEdgeTableHelper::advanceScanLine().
void ossimActiveEdgeTable::printActiveEdgeList | ( | ) | const |
Definition at line 141 of file ossimActiveEdgeTable.cpp.
References ossimNotify(), and ossimNotifyLevel_INFO.
void ossimActiveEdgeTable::updateActiveEdges | ( | ) |
Definition at line 109 of file ossimActiveEdgeTable.cpp.
Referenced by ossimActiveEdgeTableHelper::advanceScanLine().
|
friend |
Definition at line 67 of file ossimActiveEdgeTable.h.
|
protected |
Definition at line 101 of file ossimActiveEdgeTable.h.
Referenced by ossimActiveEdgeTableHelper::advanceScanLine(), and ossimActiveEdgeTableHelper::getNextLineSegment().
|
protected |
Used in computing the number of scanlines of the passed in polygon and is also used to shift the y's relative to 0,0
Definition at line 110 of file ossimActiveEdgeTable.h.
|
protected |
Definition at line 113 of file ossimActiveEdgeTable.h.
Referenced by ossimActiveEdgeTableHelper::advanceScanLine(), and getCurrentScanLine().
|
protected |
Definition at line 112 of file ossimActiveEdgeTable.h.
|
protected |
Definition at line 111 of file ossimActiveEdgeTable.h.
Referenced by getYShift().
|
protected |
Definition at line 100 of file ossimActiveEdgeTable.h.