commonMain.IQuadtree.kt Maven / Gradle / Ivy
The newest version!
package org.openrndr.extra.quadtree
import org.openrndr.math.Vector2
interface IQuadtree {
/**
* Clears the whole tree
*/
fun clear()
/**
* Finds the nearest and neighbouring objects within a radius
* (needs to have a different name so there is no ambiguity when the generic object type is Vector2)
*
* @param element
* @param radius
* @return
*/
fun nearestToPoint(point: Vector2, radius: Double): QuadtreeQuery?
/**
* Finds the nearest and neighbouring points within a radius
*
* @param element
* @param radius
* @return
*/
fun nearest(element: T, radius: Double): QuadtreeQuery?
/**
* Inserts the element in the appropriate node
*
* @param element
* @return
*/
fun insert(element: T): Boolean
/**
* Remove the given element
*
* @param element
* @return true if the element was present
*/
fun remove(element: T): Boolean
/**
* Finds which node the element is within (but not necessarily belonging to)
*
* @param element
* @return
*/
fun findNode(element: T): Quadtree?
}