25#ifndef LSST_AFW_MATH_BoundedField_h_INCLUDED
26#define LSST_AFW_MATH_BoundedField_h_INCLUDED
87 virtual ndarray::Array<double, 1, 1>
evaluate(ndarray::Array<double const, 1>
const&
x,
88 ndarray::Array<double const, 1>
const&
y)
const;
102 virtual double mean()
const;
128 template <
typename T>
146 template <
typename T>
148 int yStep = 1)
const;
164 template <
typename T>
181 template <
typename T>
A class to represent a 2-dimensional array of pixels.
An abstract base class for 2-d functions defined on an integer bounding boxes.
virtual bool operator==(BoundedField const &rhs) const =0
BoundedFields (of the same sublcass) are equal if their bounding boxes and parameters are equal.
lsst::geom::Box2I getBBox() const
Return the bounding box that defines the region where the field is valid.
bool operator!=(BoundedField const &rhs) const
BoundedFields (of the same sublcass) are equal if their bounding boxes and parameters are equal.
virtual double integrate() const
Compute the integral of this function over its bounding-box.
void divideImage(image::Image< T > &image, bool overlapOnly=false, int xStep=1, int yStep=1) const
Divide an image by the field in-place.
~BoundedField() override=default
virtual double mean() const
Compute the mean of this function over its bounding-box.
void addToImage(image::Image< T > &image, double scaleBy=1.0, bool overlapOnly=false, int xStep=1, int yStep=1) const
Add the field or a constant multiple of it to an image in-place.
BoundedField(BoundedField const &)=default
virtual std::string toString() const =0
void multiplyImage(image::Image< T > &image, bool overlapOnly=false, int xStep=1, int yStep=1) const
Multiply an image by the field in-place.
virtual double evaluate(lsst::geom::Point2D const &position) const =0
Evaluate the field at the given point.
BoundedField(lsst::geom::Box2I const &bbox)
friend std::ostream & operator<<(std::ostream &os, BoundedField const &bf)
BoundedField & operator=(BoundedField const &)=delete
BoundedField(BoundedField &&)=default
virtual std::shared_ptr< BoundedField > operator*(double const scale) const =0
Return a scaled BoundedField.
std::shared_ptr< BoundedField > operator/(double scale) const
BoundedField & operator=(BoundedField &&)=delete
double evaluate(double x, double y) const
Evaluate the field at the given point.
void fillImage(image::Image< T > &image, bool overlapOnly=false, int xStep=1, int yStep=1) const
Assign the field to an image, overwriting values already present.
A CRTP facade class for subclasses of Persistable.
A base class for objects that can be persisted via afw::table::io Archive classes.
def scale(algorithm, min, max=None, frame=None)
std::shared_ptr< BoundedField > operator*(double const scale, std::shared_ptr< BoundedField const > bf)