mtree.utils
Class ParentFilter

java.lang.Object
  extended by messif.objects.PrecomputedDistancesFilter
      extended by mtree.utils.ParentFilter
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, messif.objects.nio.BinarySerializable

public class ParentFilter
extends messif.objects.PrecomputedDistancesFilter

See Also:
Serialized Form

Constructor Summary
  ParentFilter()
          Constructors
protected ParentFilter(messif.objects.nio.BinaryInput input, messif.objects.nio.BinarySerializator serializator)
          Creates a new instance of ParentFilter loaded from binary input buffer.
  ParentFilter(messif.objects.LocalAbstractObject object)
           
 
Method Summary
protected  boolean addPrecomputedDistance(messif.objects.LocalAbstractObject obj, float distance, float[] metaDistances)
           
 int binarySerialize(messif.objects.nio.BinaryOutput output, messif.objects.nio.BinarySerializator serializator)
           
 java.lang.Object clone()
          Implemented interface Cloneable
 boolean excludeUsingPrecompDist(ParentFilter targetFilter, float radius)
           
 boolean excludeUsingPrecompDist(messif.objects.PrecomputedDistancesFilter targetFilter, float radius)
          Returns true if object can be filtered out using stored precomputed distances.
 int getBinarySize(messif.objects.nio.BinarySerializator serializator)
           
 float getParentDist()
           
 float getPrecomputedDistance(messif.objects.LocalAbstractObject obj, float[] metaDistances)
          Implemented class PrecomputedDistancesFilter
 boolean includeUsingPrecompDist(ParentFilter targetFilter, float radius)
           
 boolean includeUsingPrecompDist(messif.objects.PrecomputedDistancesFilter targetFilter, float radius)
           
protected  boolean isDataWritable()
           
 void setParentDist(float parentDist)
          Sets the distance to the parent pivot.
protected  void writeData(java.io.OutputStream stream)
           
 
Methods inherited from class messif.objects.PrecomputedDistancesFilter
getPrecomputedDistance, write
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParentFilter

public ParentFilter()
Constructors


ParentFilter

public ParentFilter(messif.objects.LocalAbstractObject object)

ParentFilter

protected ParentFilter(messif.objects.nio.BinaryInput input,
                       messif.objects.nio.BinarySerializator serializator)
                throws java.io.IOException
Creates a new instance of ParentFilter loaded from binary input buffer.

Parameters:
input - the buffer to read the ParentFilter from
serializator - the serializator used to write objects
Throws:
java.io.IOException - if there was an I/O error reading from the buffer
Method Detail

getParentDist

public float getParentDist()
Returns:
Returns the distance to the parent pivot.

setParentDist

public void setParentDist(float parentDist)
Sets the distance to the parent pivot.


getPrecomputedDistance

public float getPrecomputedDistance(messif.objects.LocalAbstractObject obj,
                                    float[] metaDistances)
Implemented class PrecomputedDistancesFilter

Specified by:
getPrecomputedDistance in class messif.objects.PrecomputedDistancesFilter

addPrecomputedDistance

protected boolean addPrecomputedDistance(messif.objects.LocalAbstractObject obj,
                                         float distance,
                                         float[] metaDistances)
Specified by:
addPrecomputedDistance in class messif.objects.PrecomputedDistancesFilter

excludeUsingPrecompDist

public final boolean excludeUsingPrecompDist(messif.objects.PrecomputedDistancesFilter targetFilter,
                                             float radius)
Returns true if object can be filtered out using stored precomputed distances. Otherwise returns false, i.e. when obj must be checked using original distance (getDistance()). In other words, method returns true if this object and obj are more distant than radius. By analogy, returns false if this object and obj are within distance radius. However, both this cases use only precomputed distances! Thus, the real distance between this object and obj can be greater than radius although the method returned false!!!

Specified by:
excludeUsingPrecompDist in class messif.objects.PrecomputedDistancesFilter

excludeUsingPrecompDist

public boolean excludeUsingPrecompDist(ParentFilter targetFilter,
                                       float radius)

includeUsingPrecompDist

public final boolean includeUsingPrecompDist(messif.objects.PrecomputedDistancesFilter targetFilter,
                                             float radius)
Specified by:
includeUsingPrecompDist in class messif.objects.PrecomputedDistancesFilter

includeUsingPrecompDist

public boolean includeUsingPrecompDist(ParentFilter targetFilter,
                                       float radius)

isDataWritable

protected boolean isDataWritable()
Specified by:
isDataWritable in class messif.objects.PrecomputedDistancesFilter

writeData

protected void writeData(java.io.OutputStream stream)
                  throws java.io.IOException
Specified by:
writeData in class messif.objects.PrecomputedDistancesFilter
Throws:
java.io.IOException

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Implemented interface Cloneable

Overrides:
clone in class messif.objects.PrecomputedDistancesFilter
Throws:
java.lang.CloneNotSupportedException

binarySerialize

public int binarySerialize(messif.objects.nio.BinaryOutput output,
                           messif.objects.nio.BinarySerializator serializator)
                    throws java.io.IOException
Specified by:
binarySerialize in interface messif.objects.nio.BinarySerializable
Overrides:
binarySerialize in class messif.objects.PrecomputedDistancesFilter
Throws:
java.io.IOException

getBinarySize

public int getBinarySize(messif.objects.nio.BinarySerializator serializator)
Specified by:
getBinarySize in interface messif.objects.nio.BinarySerializable
Overrides:
getBinarySize in class messif.objects.PrecomputedDistancesFilter