![]() |
Home · All Namespaces · All Classes · Functions · Coding Style · Scripting · Plugins · File Structure |
A SphericalCap is defined by a direction and an aperture. More...
#include <StelSphereGeometry.hpp>
Public Member Functions | |
SphericalCap () | |
SphericalCap (double x, double y, double z) | |
SphericalCap (const Vec3d &an, double ar) | |
SphericalCap (const SphericalCap &other) | |
virtual SphericalRegionType | getType () const |
virtual OctahedronPolygon | getOctahedronPolygon () const |
virtual double | getArea () const |
virtual bool | isEmpty () const |
virtual Vec3d | getPointInside () const |
virtual SphericalCap | getBoundingCap () const |
virtual bool | contains (const Vec3d &v) const |
virtual bool | contains (const Vec3f &v) const |
virtual bool | contains (const SphericalConvexPolygon &r) const |
virtual bool | contains (const SphericalCap &h) const |
virtual bool | contains (const AllSkySphericalRegion &) const |
virtual bool | intersects (const SphericalPolygon &r) const |
virtual bool | intersects (const SphericalConvexPolygon &r) const |
virtual bool | intersects (const SphericalCap &h) const |
virtual bool | intersects (const AllSkySphericalRegion &) const |
virtual QVariantList | toQVariant () const |
virtual void | serialize (QDataStream &out) const |
double | getRadius () const |
bool | intersectsHalfSpace (double hn0, double hn1, double hn2) const |
bool | clipGreatCircle (Vec3d &v1, Vec3d &v2) const |
bool | operator== (const SphericalCap &other) const |
QVector< Vec3d > | getClosedOutlineContour () const |
bool | intersectsConvexContour (const Vec3d *vertice, int nbVertice) const |
bool | containsTriangle (const Vec3d *vertice) const |
bool | intersectsTriangle (const Vec3d *vertice) const |
Static Public Member Functions | |
static SphericalRegionP | deserialize (QDataStream &in) |
static double | relativeAreaOverlap (const SphericalCap &c1, const SphericalCap &c2) |
static double | relativeDiameterOverlap (const SphericalCap &c1, const SphericalCap &c2) |
static bool | intersectionPoints (const SphericalCap &h1, const SphericalCap &h2, Vec3d &p1, Vec3d &p2) |
Public Attributes | |
Vec3d | n |
double | d |
A SphericalCap is defined by a direction and an aperture.
It forms a cone from the center of the Coordinate frame with a radius d. It is a disc on the sphere, a region above a circle on the unit sphere.
SphericalCap::SphericalCap | ( | const Vec3d & | an, | |
double | ar | |||
) | [inline] |
Construct a SphericalCap from its direction and aperture.
an | a unit vector indicating the direction. | |
ar | cosinus of the aperture. |
Clip the passed great circle connecting points v1 and v2.
virtual OctahedronPolygon SphericalCap::getOctahedronPolygon | ( | ) | const [virtual] |
Return the octahedron contour representation of the polygon.
It can be used for safe computation of intersection/union in the general case.
Implements SphericalRegion.
static bool SphericalCap::intersectionPoints | ( | const SphericalCap & | h1, | |
const SphericalCap & | h2, | |||
Vec3d & | p1, | |||
Vec3d & | p2 | |||
) | [static] |
Compute the intersection of 2 halfspaces on the sphere (usually on 2 points) and return it in p1 and p2.
If the 2 SphericalCap don't intersect or intersect only at 1 point, false is returned and p1 and p2 are undefined.
virtual bool SphericalCap::intersects | ( | const SphericalCap & | h | ) | const [inline, virtual] |
Returns whether a SphericalCap intersects with this one.
I managed to make it without sqrt or acos, so it is very fast!
Reimplemented from SphericalRegion.
bool SphericalCap::intersectsHalfSpace | ( | double | hn0, | |
double | hn1, | |||
double | hn2 | |||
) | const [inline] |
Returns whether a HalfSpace (like a SphericalCap with d=0) intersects with this SphericalCap.
hn0 | the x direction of the halfspace. | |
hn1 | the y direction of the halfspace. | |
hn2 | the z direction of the halfspace. |
virtual QVariantList SphericalCap::toQVariant | ( | ) | const [virtual] |
Serialize the region into a QVariant map matching the JSON format.
The format is ["CAP", [ra, dec], radius], with ra dec in degree in ICRS frame and radius in degree (between 0 and 180 deg)
Implements SphericalRegion.