Vertex Class Reference

a vertex in a graph More...

#include <Vertex.h>

List of all members.

Public Member Functions

 Vertex (VertexLabel l, SamplePos *sposs, SampleValue **svalues, EmbValue t)
 ~Vertex (void)
SamplePos getSamplePos (unsigned short i) const
SampleValuegetSampleValue (unsigned short i) const
UWORD32 getDegree (void) const
EdgegetShortestEdge (void) const
void updateShortestEdge (void)
void markDeleted (void)
void unmarkDeleted (void)
VertexLabel getLabel (void) const
void setLabel (VertexLabel l)
void setSampleOccurenceIt (unsigned short i, std::list< SampleOccurence >::iterator it)
EmbValue getEmbeddedValue (void) const
EmbValue getTargetValue (unsigned short i) const
void print (unsigned short spc=0) const
void printEdges (void) const

Private Attributes

VertexLabel Label
 the vertex label of this vertex
SamplePosSamplePositions
 the sample positions of the samples described by this vertex in the CvrStgFile
SampleValue ** SampleValues
 the sample values at the SamplePositions
EmbValueTargetValues
 the target values for the sample values (exactly one of them has to be reached (and the other left unchanged) to embed this vertex)
std::list< SampleOccurence >
::iterator * 
SampleOccurenceIts
 point to entries in std::lists of sample occurences in the graph
EdgeShortestEdge
 the shortest edge of this vertex (as calculated by updateShortestEdge)
bool valid
 true iff this vertex is not deleted
unsigned short SelfDegree
 the number of loop edges (loop edges are not valid edges)


Detailed Description

A vertex represents a bit that will cause a change to the cover-stego-file to be embedded. A vertex consists of k samples (that is k sample values at k (different) positions in the cover-stego-file), where k is TheCvrStgFile->getNumSamplesPerVertex(). One of these k samples must be changed to an opposite sample to embed the bit that corresponds to this vertex.

NOTE: Vertex relies on the Globals object pointed to by the Globs pointer. This means that it must be set correctly before using any method of a Vertex object.


Constructor & Destructor Documentation

Vertex::Vertex ( VertexLabel  l,
SamplePos sposs,
SampleValue **  svalues,
EmbValue  t 
)

construct a new vertex object

Parameters:
l the vertex label for this vertex
sposs the array (with length g->getSamplesPerVertex()) of the positions of the samples
svalues the array (with length g->getSamplesPerVertex()) of (unique (!)) pointers to the sample values
t the target value for the whole vertex - the value that should be returned by getEmbeddedValue() after the embedding

Vertex::~Vertex ( void   ) 


Member Function Documentation

SamplePos Vertex::getSamplePos ( unsigned short  i  )  const [inline]

get the i-th sample position

Parameters:
i an index of a sample in this vertex (must be < TheCvrStgFile->getNumSamplesPerVertex())
Returns:
the position of the sample in the associated cvrstgfile

SampleValue* Vertex::getSampleValue ( unsigned short  i  )  const [inline]

get the i-th sample value

Parameters:
i an index of a sample in this vertex (must be < TheCvrStgFile->getNumSamplesPerVertex())
Returns:
the value of the sample in the associated cvrstgfile

UWORD32 Vertex::getDegree ( void   )  const

get the degree of this vertex

Edge* Vertex::getShortestEdge ( void   )  const [inline]

get the shortest edge of this vertex

void Vertex::updateShortestEdge ( void   ) 

find shortest edge of this vertex and save result to ShortestEdge

void Vertex::markDeleted ( void   ) 

if this vertex is valid, mark it as deleted

void Vertex::unmarkDeleted ( void   ) 

if this vertex is marked as deleted, undo this

VertexLabel Vertex::getLabel ( void   )  const [inline]

void Vertex::setLabel ( VertexLabel  l  )  [inline]

void Vertex::setSampleOccurenceIt ( unsigned short  i,
std::list< SampleOccurence >::iterator  it 
) [inline]

EmbValue Vertex::getEmbeddedValue ( void   )  const

EmbValue Vertex::getTargetValue ( unsigned short  i  )  const [inline]

void Vertex::print ( unsigned short  spc = 0  )  const

void Vertex::printEdges ( void   )  const


Member Data Documentation

std::list<SampleOccurence>::iterator* Vertex::SampleOccurenceIts [private]

bool Vertex::valid [private]

unsigned short Vertex::SelfDegree [private]


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

Generated on Fri Aug 8 16:58:42 2008 for steghide by  doxygen 1.5.6