lsst.sphgeom
gdcc65144bf+d801c9999e
Toggle main menu visibility
Loading...
Searching...
No Matches
Q3cPixelization.h
Go to the documentation of this file.
1
/*
2
* This file is part of sphgeom.
3
*
4
* Developed for the LSST Data Management System.
5
* This product includes software developed by the LSST Project
6
* (http://www.lsst.org).
7
* See the COPYRIGHT file at the top-level directory of this distribution
8
* for details of code ownership.
9
*
10
* This software is dual licensed under the GNU General Public License and also
11
* under a 3-clause BSD license. Recipients may choose which of these licenses
12
* to use; please see the files gpl-3.0.txt and/or bsd_license.txt,
13
* respectively. If you choose the GPL option then the following text applies
14
* (but note that there is still no warranty even if you opt for BSD instead):
15
*
16
* This program is free software: you can redistribute it and/or modify
17
* it under the terms of the GNU General Public License as published by
18
* the Free Software Foundation, either version 3 of the License, or
19
* (at your option) any later version.
20
*
21
* This program is distributed in the hope that it will be useful,
22
* but WITHOUT ANY WARRANTY; without even the implied warranty of
23
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24
* GNU General Public License for more details.
25
*
26
* You should have received a copy of the GNU General Public License
27
* along with this program. If not, see <http://www.gnu.org/licenses/>.
28
*/
29
30
#ifndef LSST_SPHGEOM_Q3CPIXELIZATION_H_
31
#define LSST_SPHGEOM_Q3CPIXELIZATION_H_
32
36
37
#include <cstdint>
38
#include <vector>
39
40
#include "
ConvexPolygon.h
"
41
#include "
Pixelization.h
"
42
43
44
namespace
lsst {
45
namespace
sphgeom
{
46
57
class
Q3cPixelization
:
public
Pixelization
{
58
public
:
60
static
constexpr
int
MAX_LEVEL
= 30;
61
65
explicit
Q3cPixelization
(
int
level);
66
68
int
getLevel
()
const
{
return
_level; }
69
74
ConvexPolygon
quad
(std::uint64_t i)
const
;
75
82
std::vector<std::uint64_t>
neighborhood
(std::uint64_t i)
const
;
83
84
RangeSet
universe
()
const override
{
85
return
RangeSet
(0,
static_cast<
std::uint64_t
>
(6) << 2 * _level);
86
}
87
88
std::unique_ptr<Region>
pixel
(std::uint64_t i)
const override
;
89
90
std::uint64_t
index
(
UnitVector3d
const
& v)
const override
;
91
102
std::string
toString
(std::uint64_t i)
const override
;
103
104
private
:
105
int
_level;
106
107
RangeSet
_envelope(
Region
const
& r,
size_t
maxRanges)
const override
;
108
RangeSet
_interior(
Region
const
& r,
size_t
maxRanges)
const override
;
109
};
110
111
}}
// namespace lsst::sphgeom
112
113
#endif
// LSST_SPHGEOM_Q3CPIXELIZATION_H_
ConvexPolygon.h
This file declares a class for representing convex polygons with great circle edges on the unit spher...
Pixelization.h
This file defines an interface for pixelizations of the sphere.
lsst::sphgeom::ConvexPolygon
Definition
ConvexPolygon.h:65
lsst::sphgeom::Pixelization
Definition
Pixelization.h:84
lsst::sphgeom::Q3cPixelization::index
std::uint64_t index(UnitVector3d const &v) const override
index computes the index of the pixel for v.
Definition
Q3cPixelization.cc:319
lsst::sphgeom::Q3cPixelization::quad
ConvexPolygon quad(std::uint64_t i) const
Definition
Q3cPixelization.cc:269
lsst::sphgeom::Q3cPixelization::universe
RangeSet universe() const override
universe returns the set of all pixel indexes for this pixelization.
Definition
Q3cPixelization.h:84
lsst::sphgeom::Q3cPixelization::getLevel
int getLevel() const
getLevel returns the subdivision level of this pixelization.
Definition
Q3cPixelization.h:68
lsst::sphgeom::Q3cPixelization::toString
std::string toString(std::uint64_t i) const override
Definition
Q3cPixelization.cc:287
lsst::sphgeom::Q3cPixelization::Q3cPixelization
Q3cPixelization(int level)
Definition
Q3cPixelization.cc:263
lsst::sphgeom::Q3cPixelization::pixel
std::unique_ptr< Region > pixel(std::uint64_t i) const override
Definition
Q3cPixelization.cc:308
lsst::sphgeom::Q3cPixelization::MAX_LEVEL
static constexpr int MAX_LEVEL
The maximum supported cube-face grid resolution is 2^30 by 2^30.
Definition
Q3cPixelization.h:60
lsst::sphgeom::Q3cPixelization::neighborhood
std::vector< std::uint64_t > neighborhood(std::uint64_t i) const
Definition
Q3cPixelization.cc:278
lsst::sphgeom::RangeSet
Definition
RangeSet.h:106
lsst::sphgeom::Region
Definition
Region.h:105
lsst::sphgeom::UnitVector3d
Definition
UnitVector3d.h:62
lsst::sphgeom
Definition
Angle.h:45
include
lsst
sphgeom
Q3cPixelization.h
Generated by
1.17.0