| LSSTApplications
    20.0.0
    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 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.
This file declares a class for representing elliptical regions on the unit sphere.
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...
This file declares a class for representing longitude/latitude angle boxes on the unit sphere.
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.