RangeConvex

Search for usage in LXR

#include <RangeConvex.h>

Public Member Functions

 RangeConvex ()
 
 RangeConvex (const SpatialVector *v1, const SpatialVector *v2, const SpatialVector *v3)
 
 RangeConvex (const SpatialVector *v1, const SpatialVector *v2, const SpatialVector *v3, const SpatialVector *v4)
 
void add (SpatialConstraint &)
 
void intersect (const SpatialIndex *index, HtmRange *hr)
 
void setOlevel (int level)
 
void simplify ()
 

Protected Member Functions

bool eSolve (const SpatialVector &v1, const SpatialVector &v2, size_t cIndex)
 
void saveTrixel (uint64 htmid)
 
void simplify0 ()
 
bool testBoundingCircle (const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2)
 
bool testConstraintInside (const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2, size_t cIndex)
 
int testConstraints (size_t i, size_t j)
 
bool testEdge (const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2)
 
bool testEdge0 (const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2)
 
bool testEdgeConstraint (const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2, size_t cIndex)
 
bool testHole (const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2)
 
SpatialMarkup testNode (const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2)
 
SpatialMarkup testNode (uint64 id)
 
size_t testOtherPosNone (const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2)
 
void testPartial (size_t level, uint64 id, const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2, int previousPartials)
 
SpatialMarkup testTriangle (const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2, int vsum)
 
SpatialMarkup testTrixel (uint64 nodeIndex)
 
bool testVectorInside (const SpatialVector &v0, const SpatialVector &v1, const SpatialVector &v2, SpatialVector &v)
 
int testVertex (const SpatialVector &v)
 
int testVertex (const SpatialVector *v)
 

Protected Attributes

size_t addlevel_
 
SpatialConstraint boundingCircle_
 
std::vector< SpatialConstraintconstraints_
 
std::vector< SpatialVectorcorners_
 
HtmRange * hr
 
const SpatialIndexindex_
 
int olevel
 
ValueVectorUint64 * plist_
 
Sign sign_ { zERO }
 

Detailed Description

A spatial convex is composed of spatial constraints.

It does not necessarily define a continuous area on the sphere since it is a 3D-convex of planar intersections which may intersect with the unit sphere at disjoint locations. Especially 'negative' constraints tend to tear 'holes' into the convex area.

Definition at line 59 of file RangeConvex.h.

Constructor & Destructor Documentation

◆ RangeConvex() [1/3]

RangeConvex::RangeConvex ( )

Default Constructor.

Definition at line 25 of file RangeConvex.cpp.

◆ RangeConvex() [2/3]

RangeConvex::RangeConvex ( const SpatialVector * v1,
const SpatialVector * v2,
const SpatialVector * v3 )

Constructor from a triangle.

Definition at line 37 of file RangeConvex.cpp.

◆ RangeConvex() [3/3]

RangeConvex::RangeConvex ( const SpatialVector * v1,
const SpatialVector * v2,
const SpatialVector * v3,
const SpatialVector * v4 )

Constructor from a rectangle.

Definition at line 68 of file RangeConvex.cpp.

Member Function Documentation

◆ add()

void RangeConvex::add ( SpatialConstraint & c)

Add a constraint.

Definition at line 117 of file RangeConvex.cpp.

◆ eSolve()

bool RangeConvex::eSolve ( const SpatialVector & v1,
const SpatialVector & v2,
size_t cIndex )
protected

Definition at line 1111 of file RangeConvex.cpp.

◆ intersect()

void RangeConvex::intersect ( const SpatialIndex * index,
HtmRange * hr )

Intersect with index.

Result is given in a list of nodes.

Definition at line 566 of file RangeConvex.cpp.

◆ saveTrixel()

void RangeConvex::saveTrixel ( uint64 htmid)
inlineprotected

Definition at line 586 of file RangeConvex.cpp.

◆ setOlevel()

void RangeConvex::setOlevel ( int level)
inline

Definition at line 80 of file RangeConvex.h.

◆ simplify()

void RangeConvex::simplify ( )

Simplify the convex, remove redundancies.

Definition at line 422 of file RangeConvex.cpp.

◆ simplify0()

void RangeConvex::simplify0 ( )
protected

Definition at line 187 of file RangeConvex.cpp.

◆ testBoundingCircle()

bool RangeConvex::testBoundingCircle ( const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2 )
protected

Definition at line 1161 of file RangeConvex.cpp.

◆ testConstraintInside()

bool RangeConvex::testConstraintInside ( const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2,
size_t cIndex )
protected

Definition at line 1231 of file RangeConvex.cpp.

◆ testConstraints()

int RangeConvex::testConstraints ( size_t i,
size_t j )
protected

Definition at line 546 of file RangeConvex.cpp.

◆ testEdge()

bool RangeConvex::testEdge ( const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2 )
protected

Definition at line 1090 of file RangeConvex.cpp.

◆ testEdge0()

bool RangeConvex::testEdge0 ( const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2 )
protected

Definition at line 1017 of file RangeConvex.cpp.

◆ testEdgeConstraint()

bool RangeConvex::testEdgeConstraint ( const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2,
size_t cIndex )
protected

Definition at line 1200 of file RangeConvex.cpp.

◆ testHole()

bool RangeConvex::testHole ( const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2 )
protected

Definition at line 981 of file RangeConvex.cpp.

◆ testNode() [1/2]

SpatialMarkup RangeConvex::testNode ( const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2 )
protected

Definition at line 814 of file RangeConvex.cpp.

◆ testNode() [2/2]

SpatialMarkup RangeConvex::testNode ( uint64 id)
protected

Definition at line 785 of file RangeConvex.cpp.

◆ testOtherPosNone()

size_t RangeConvex::testOtherPosNone ( const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2 )
protected

Definition at line 1216 of file RangeConvex.cpp.

◆ testPartial()

void RangeConvex::testPartial ( size_t level,
uint64 id,
const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2,
int previousPartials )
protected

Definition at line 720 of file RangeConvex.cpp.

◆ testTriangle()

SpatialMarkup RangeConvex::testTriangle ( const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2,
int vsum )
protected

Definition at line 834 of file RangeConvex.cpp.

◆ testTrixel()

SpatialMarkup RangeConvex::testTrixel ( uint64 nodeIndex)
protected

No children...

Definition at line 629 of file RangeConvex.cpp.

◆ testVectorInside()

bool RangeConvex::testVectorInside ( const SpatialVector & v0,
const SpatialVector & v1,
const SpatialVector & v2,
SpatialVector & v )
protected

Definition at line 1240 of file RangeConvex.cpp.

◆ testVertex() [1/2]

int RangeConvex::testVertex ( const SpatialVector & v)
protected

Definition at line 959 of file RangeConvex.cpp.

◆ testVertex() [2/2]

int RangeConvex::testVertex ( const SpatialVector * v)
protected

Definition at line 967 of file RangeConvex.cpp.

Member Data Documentation

◆ addlevel_

size_t RangeConvex::addlevel_
protected

Definition at line 168 of file RangeConvex.h.

◆ boundingCircle_

SpatialConstraint RangeConvex::boundingCircle_
protected

Definition at line 167 of file RangeConvex.h.

◆ constraints_

std::vector<SpatialConstraint> RangeConvex::constraints_
protected

Definition at line 164 of file RangeConvex.h.

◆ corners_

std::vector<SpatialVector> RangeConvex::corners_
protected

Definition at line 166 of file RangeConvex.h.

◆ hr

HtmRange* RangeConvex::hr
protected

Definition at line 83 of file RangeConvex.h.

◆ index_

const SpatialIndex* RangeConvex::index_
protected

Definition at line 165 of file RangeConvex.h.

◆ olevel

int RangeConvex::olevel
protected

Definition at line 84 of file RangeConvex.h.

◆ plist_

ValueVectorUint64* RangeConvex::plist_
protected

Definition at line 169 of file RangeConvex.h.

◆ sign_

Sign RangeConvex::sign_ { zERO }
protected

Definition at line 85 of file RangeConvex.h.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Mon Nov 18 2024 12:16:43 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.