Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

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

UWORD32 Vertex::getDegree void   )  const
 

get the degree of this vertex

EmbValue Vertex::getEmbeddedValue void   )  const
 

VertexLabel Vertex::getLabel void   )  const [inline]
 

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

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

get the shortest edge of this vertex

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

void Vertex::markDeleted void   ) 
 

if this vertex is valid, mark it as deleted

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

void Vertex::printEdges void   )  const
 

void Vertex::setLabel VertexLabel  l  )  [inline]
 

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

void Vertex::unmarkDeleted void   ) 
 

if this vertex is marked as deleted, undo this

void Vertex::updateShortestEdge void   ) 
 

find shortest edge of this vertex and save result to ShortestEdge


Member Data Documentation

VertexLabel Vertex::Label [private]
 

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

SamplePos* Vertex::SamplePositions [private]
 

SampleValue** Vertex::SampleValues [private]
 

unsigned short Vertex::SelfDegree [private]
 

Edge* Vertex::ShortestEdge [private]
 

EmbValue* Vertex::TargetValues [private]
 

bool Vertex::valid [private]
 


The documentation for this class was generated from the following files:
Generated on Fri Jul 16 19:41:22 2004 for steghide by doxygen 1.3.7