vtkKMeansDistanceFunctor Class Reference

#include <vtkKMeansDistanceFunctor.h>

Inheritance diagram for vtkKMeansDistanceFunctor:

Inheritance graph
[legend]
Collaboration diagram for vtkKMeansDistanceFunctor:

Collaboration graph
[legend]

List of all members.


Detailed Description

measure distance from k-means cluster centers

This is an abstract class (with a default concrete subclass) that implements algorithms used by the vtkKMeansStatistics filter that rely on a distance metric. If you wish to use a non-Euclidean distance metric (this could include working with strings that do not have a Euclidean distance metric, implementing k-mediods, or trying distance metrics in norms other than L2), you should subclass vtkKMeansDistanceFunctor.

Definition at line 21 of file vtkKMeansDistanceFunctor.h.


Public Types

typedef vtkObject Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
virtual void PrintSelf (ostream &os, vtkIndent indent)
virtual vtkVariantArrayGetEmptyTuple (vtkIdType dimension)
virtual void operator() (double &, vtkVariantArray *, vtkVariantArray *)
virtual void PairwiseUpdate (vtkTable *clusterCenters, vtkIdType row, vtkVariantArray *data, vtkIdType dataCardinality, vtkIdType totalCardinality)
virtual void PerturbElement (vtkTable *, vtkTable *, vtkIdType, vtkIdType, vtkIdType, double)
virtual void * AllocateElementArray (vtkIdType size)
virtual void DeallocateElementArray (void *)
virtual vtkAbstractArrayCreateCoordinateArray ()
virtual void PackElements (vtkTable *curTable, void *vElements)
virtual int GetDataType ()
virtual void UnPackElements (vtkTable *curTable, vtkTable *newTable, void *vLocalElements, void *vGlobalElements, int np)
virtual void UnPackElements (vtkTable *curTable, void *vLocalElements, vtkIdType numRows, vtkIdType numCols)

Static Public Member Functions

static vtkKMeansDistanceFunctorNew ()
static int IsTypeOf (const char *type)
static vtkKMeansDistanceFunctorSafeDownCast (vtkObject *o)

Protected Member Functions

 vtkKMeansDistanceFunctor ()
virtual ~vtkKMeansDistanceFunctor ()

Protected Attributes

vtkVariantArrayEmptyTuple
vtkTableCenterUpdates

Member Typedef Documentation

Reimplemented from vtkObject.

Reimplemented in vtkKMeansDistanceFunctorCalculator.

Definition at line 25 of file vtkKMeansDistanceFunctor.h.


Constructor & Destructor Documentation

vtkKMeansDistanceFunctor::vtkKMeansDistanceFunctor (  )  [protected]

virtual vtkKMeansDistanceFunctor::~vtkKMeansDistanceFunctor (  )  [protected, virtual]


Member Function Documentation

static vtkKMeansDistanceFunctor* vtkKMeansDistanceFunctor::New (  )  [static]

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkObject.

Reimplemented in vtkKMeansDistanceFunctorCalculator.

virtual const char* vtkKMeansDistanceFunctor::GetClassName (  )  [virtual]

Reimplemented from vtkObject.

Reimplemented in vtkKMeansDistanceFunctorCalculator.

static int vtkKMeansDistanceFunctor::IsTypeOf ( const char *  name  )  [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

Reimplemented in vtkKMeansDistanceFunctorCalculator.

virtual int vtkKMeansDistanceFunctor::IsA ( const char *  name  )  [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

Reimplemented in vtkKMeansDistanceFunctorCalculator.

static vtkKMeansDistanceFunctor* vtkKMeansDistanceFunctor::SafeDownCast ( vtkObject o  )  [static]

Reimplemented from vtkObject.

Reimplemented in vtkKMeansDistanceFunctorCalculator.

virtual void vtkKMeansDistanceFunctor::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObject.

Reimplemented in vtkKMeansDistanceFunctorCalculator.

virtual vtkVariantArray* vtkKMeansDistanceFunctor::GetEmptyTuple ( vtkIdType  dimension  )  [virtual]

Return an empty tuple. These values are used as cluster center coordinates when no initial cluster centers are specified.

virtual void vtkKMeansDistanceFunctor::operator() ( double &  ,
vtkVariantArray ,
vtkVariantArray  
) [virtual]

Compute the distance from one observation to another, returning the distance in the first argument.

Reimplemented in vtkKMeansDistanceFunctorCalculator.

virtual void vtkKMeansDistanceFunctor::PairwiseUpdate ( vtkTable clusterCenters,
vtkIdType  row,
vtkVariantArray data,
vtkIdType  dataCardinality,
vtkIdType  totalCardinality 
) [virtual]

This is called once per observation per run per iteration in order to assign the observation to its nearest cluster center after the distance functor has been evaluated for all the cluster centers. The distance functor is responsible for incrementally updating the cluster centers to account for the assignment.

virtual void vtkKMeansDistanceFunctor::PerturbElement ( vtkTable ,
vtkTable ,
vtkIdType  ,
vtkIdType  ,
vtkIdType  ,
double   
) [virtual]

When a cluster center (1) has no observations that are closer to it than other cluster centers or (2) has exactly the same coordinates as another cluster center, its coordinates should be perturbed. This function should perform that perturbation. Since perturbation relies on a distance metric, this function is the responsibility of the distance functor.

virtual void* vtkKMeansDistanceFunctor::AllocateElementArray ( vtkIdType  size  )  [virtual]

Allocate an array large enough to hold size coordinates and return a void pointer to this array. This is used by vtkPKMeansStatistics to send (receive) cluster center coordinates to (from) other processes.

virtual void vtkKMeansDistanceFunctor::DeallocateElementArray ( void *   )  [virtual]

Free an array allocated with AllocateElementArray.

virtual vtkAbstractArray* vtkKMeansDistanceFunctor::CreateCoordinateArray (  )  [virtual]

Return a vtkAbstractArray capable of holding cluster center coordinates. This is used by vtkPKMeansStatistics to hold cluster center coordinates sent to (received from) other processes.

virtual void vtkKMeansDistanceFunctor::PackElements ( vtkTable curTable,
void *  vElements 
) [virtual]

Pack the cluster center coordinates in vElements into columns of curTable. This code may assume that the columns in curTable are all of the type returned by GetNewVTKArray().

virtual void vtkKMeansDistanceFunctor::UnPackElements ( vtkTable curTable,
vtkTable newTable,
void *  vLocalElements,
void *  vGlobalElements,
int  np 
) [virtual]

Unpack the cluster center coordinates in vElements into columns of curTable. This code may assume that the columns in curTable are all of the type returned by GetNewVTKArray().

virtual void vtkKMeansDistanceFunctor::UnPackElements ( vtkTable curTable,
void *  vLocalElements,
vtkIdType  numRows,
vtkIdType  numCols 
) [virtual]

Unpack the cluster center coordinates in vElements into columns of curTable. This code may assume that the columns in curTable are all of the type returned by GetNewVTKArray().

virtual int vtkKMeansDistanceFunctor::GetDataType (  )  [virtual]

Return the data type used to store cluster center coordinates.


Member Data Documentation

Definition at line 84 of file vtkKMeansDistanceFunctor.h.

Definition at line 85 of file vtkKMeansDistanceFunctor.h.


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

Generated on Wed Aug 24 11:44:53 2011 for VTK by  doxygen 1.5.6