LSSTApplications
19.0.0-11-g2ce9f25+2,20.0.0+1,20.0.0+11,20.0.0+2,20.0.0+3,20.0.0+4,20.0.0+5,20.0.0+8,20.0.0+9,20.0.0-1-g009f3de,20.0.0-1-g10df615+8,20.0.0-1-g253301a+4,20.0.0-1-g32a200e+8,20.0.0-1-g596936a+9,20.0.0-1-g8a53f90+1,20.0.0-1-gc96f8cb+10,20.0.0-1-gd1c87d7+1,20.0.0-15-g34741e2+3,20.0.0-2-g04cfba9+2,20.0.0-2-gec03fae+2,20.0.0-3-g082faa5+1,20.0.0-3-g2fa8bb8+6,20.0.0-3-gbdbfa727+1,20.0.0-4-gde602ef96+3,20.0.0-4-ge48a6ca+4,20.0.0-8-g1acaa36,20.0.0-8-g7eef53f7+5,w.2020.27
LSSTDataManagementBasePackage
|
Go to the documentation of this file.
43 _a(alpha.asRadians() - 0.5 *
PI)
50 }
else if (f1 == -f2) {
70 b1.
x(), b1.
y(), b1.
z(),
71 f1.
x(), f1.
y(), f1.
z());
87 b1.
x(), b1.
y(), b1.
z(),
88 b2.
x(), b2.
y(), b2.
z());
94 }
else if (_a.
asRadians() > 0.0 && _b < _a) {
132 b1.
x(), b1.
y(), b1.
z(),
133 center.
x(), center.
y(), center.
z());
141 if ((alpha.
asRadians() < 0.5 *
PI && alpha < beta) ||
150 b1.
x(), b1.
y(), b1.
z(),
151 center.
x(), center.
y(), center.
z());
162 double vdotc = v.
dot(c);
171 }
else if (vdotc < -0.5) {
179 double x = u.x() * _tana;
180 double y = u.y() * _tanb;
181 double z = u.z() + scz;
182 double d = (
x *
x +
y *
y) -
z *
z;
184 return z >= 0.0 || d >= 0.0;
186 return z >= 0.0 && d <= 0.0;
344 for (
int r = 0; r < 3; ++r) {
345 for (
int c = 0; c < 3; ++c) {
358 if (buffer ==
nullptr ||
n != ENCODED_SIZE || buffer[0] !=
TYPE_CODE) {
372 ellipse->_S =
Matrix3d(m00, m01, m02,
380 ellipse->_gamma =
Angle(gamma);
383 ellipse->_tana = tana;
384 ellipse->_tanb = tanb;
static constexpr uint8_t TYPE_CODE
static UnitVector3d northFrom(Vector3d const &v)
northFrom returns the unit vector orthogonal to v that points "north" from v.
This file declares a class for representing longitude/latitude angle boxes on the unit sphere.
This file declares a class for representing axis-aligned bounding boxes in ℝ³.
Angle getBeta() const
getBeta returns β, the second semi-axis length of the ellipse.
double asRadians() const
asRadians returns the value of this angle in units of radians.
Matrix3d const & getTransformMatrix() const
getTransformMatrix returns the orthogonal matrix that maps vectors to the basis in which the quadrati...
int orientation(UnitVector3d const &a, UnitVector3d const &b, UnitVector3d const &c)
orientation computes and returns the orientations of 3 unit vectors a, b and c.
bool isNan() const
isNan returns true if the angle value is NaN.
Relationship relate(UnitVector3d const &v) const
Box represents a rectangle in spherical coordinate space that contains its boundary.
This file declares a class for representing elliptical regions on the unit sphere.
double dot(Vector3d const &v) const
dot returns the inner product of this unit vector and v.
This file contains simple helper functions for encoding and decoding primitive types to/from byte str...
Box3d getBoundingBox3d() const override
getBoundingBox3d returns a 3-dimensional bounding-box for this region.
This file declares a class for representing circular regions on the unit sphere.
Vector3d is a vector in ℝ³ with components stored in double precision.
Box3d represents a box in ℝ³.
UnitVector3d is a unit vector in ℝ³ with components stored in double precision.
ConvexPolygon is a closed convex polygon on the unit sphere.
Ellipse()
This constructor creates an empty ellipse.
double normalize()
normalize scales this vector to have unit norm and returns its norm prior to scaling.
Box getBoundingBox() const override
getBoundingBox returns a bounding-box for this region.
Ellipse is an elliptical region on the sphere.
double tan(Angle const &a)
static std::unique_ptr< Ellipse > decode(std::vector< uint8_t > const &s)
Box getBoundingBox() const override
getBoundingBox returns a bounding-box for this region.
Vector3d cross(Vector3d const &v) const
cross returns the cross product of this vector and v.
Vector3d cross(Vector3d const &v) const
cross returns the cross product of this unit vector and v.
Angle getAlpha() const
getAlpha returns α, the first semi-axis length of the ellipse.
Box3d getBoundingBox3d() const override
getBoundingBox3d returns a 3-dimensional bounding-box for this region.
A base class for image defects.
double decodeDouble(uint8_t const *buffer)
decode extracts an IEEE double from the 8 byte little-endian byte sequence in buffer.
A 3x3 matrix with real entries stored in double precision.
UnitVector3d rotatedAround(UnitVector3d const &k, Angle a) const
rotatedAround returns a copy of this unit vector, rotated around the unit vector k by angle a accordi...
bool contains(UnitVector3d const &v) const override
contains tests whether the given unit vector is inside this region.
Angle represents an angle in radians.
static UnitVector3d orthogonalTo(Vector3d const &v)
orthogonalTo returns an arbitrary unit vector that is orthogonal to v.
Relationship relate(Region const &r) const override
std::ostream & operator<<(std::ostream &, Angle const &)
Circle getBoundingCircle() const override
getBoundingCircle returns a bounding-circle for this region.
UnitVector3d getCenter() const
getCenter returns the center of the ellipse as a unit vector.
Circle is a circular region on the unit sphere that contains its boundary.
NormalizedAngle is an angle that lies in the range [0, 2π), with one exception - a NormalizedAngle ca...
constexpr double MAX_ASIN_ERROR
double cos(Angle const &a)
This file declares a class for representing convex polygons with great circle edges on the unit spher...
std::vector< uint8_t > encode() const override
encode serializes this region into an opaque byte string.
void encodeDouble(double item, std::vector< uint8_t > &buffer)
encode appends an IEEE double in little-endian byte order to the end of buffer.