LSSTApplications
19.0.0-14-gb0260a2+f7b33f63ed,20.0.0+028ca7aeb5,20.0.0+578ca8d785,20.0.0+95fe209e70,20.0.0+d1f8484762,20.0.0+ec0eb203f4,20.0.0-1-g253301a+95fe209e70,20.0.0-1-g2b7511a+ce6f728470,20.0.0-1-g5b95a8c+36cabaa438,20.0.0-1-gedffbd8+08e3982e2f,20.0.0-11-gd9dafd18+ee11e5b92d,20.0.0-16-gfab17e72e+f119078cbc,20.0.0-19-gb3c8180+76b8b4580d,20.0.0-2-g4dae9ad+b9c65d2db1,20.0.0-2-g61b8584+62d102034e,20.0.0-2-gb780d76+f45b7d88f4,20.0.0-2-ged6426c+c16e0e6c56,20.0.0-2-gf072044+95fe209e70,20.0.0-2-gf1f7952+b9c65d2db1,20.0.0-22-gdf434b7+b9c65d2db1,20.0.0-23-g10eeb28+266feae6ef,20.0.0-25-g3dcad98+7edba9c73c,20.0.0-3-g1653f94+62d102034e,20.0.0-3-g4cc78c6+1c0c6df15e,20.0.0-3-g8f21e14+cae0a2a29f,20.0.0-3-gbd60e8c+eb59cfae10,20.0.0-3-gbecbe05+a2681a7a86,20.0.0-36-g96d5af2b+330d9ff9b7,20.0.0-4-g97dc21a+7edba9c73c,20.0.0-4-gb4befbc+0084b8bcb8,20.0.0-4-gfea843c+f45b7d88f4,20.0.0-5-gdfe0fee+88049eac2d,20.0.0-6-g64f541c+f45b7d88f4,20.0.0-6-g9a5b7a1+db91213b54,20.0.0-67-g32d6278+0d86c2e7cd,20.0.0-9-g4aef684+e9f4309ef0,w.2020.44
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 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.
double dot(Vector3d const &v) const
dot returns the inner product of this unit vector and v.
This file declares a class for representing elliptical regions on the unit sphere.
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.
This file declares a class for representing longitude/latitude angle boxes on the unit sphere.
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.