Skip to content
Snippets Groups Projects
GeometryHelpers.h 811 B
Newer Older
Chao Peng's avatar
Chao Peng committed
#pragma once
#include <vector>
#include "Math/Point2D.h"

// some utility functions that can be shared
namespace athena::geo {
Chao Peng's avatar
Chao Peng committed

typedef ROOT::Math::XYPoint Point;

// fill rectangles in a ring
std::vector<Point> fillRectangles(Point ref, double sx, double sy, double rmin, double rmax,
                                  double phmin = -M_PI, double phmax = M_PI);
Chao Peng's avatar
Chao Peng committed
// fill squares in a ring
inline std::vector<Point> fillSquares(Point ref, double size, double rmin, double rmax,
                                      double phmin = -M_PI, double phmax = M_PI)
{
    return fillRectangles(ref, size, size, rmin, rmax, phmin, phmax);
}
std::vector<Point> fillHexagons(Point ref, double lside, double rmin, double rmax,
                                double phmin = -M_PI, double phmax = M_PI);

} // athena::geo