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.

◆ 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.

◆ simplify()

void RangeConvex::simplify ( )

Simplify the convex, remove redundancies.

Definition at line 422 of file RangeConvex.cpp.

◆ testTrixel()

SpatialMarkup RangeConvex::testTrixel ( uint64  nodeIndex)
protected

No children...

Definition at line 629 of file RangeConvex.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon May 8 2023 03:57:39 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.