chromium/third_party/s2cellid/src/s2/r2rect.h

// Copyright 2012 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS-IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

// Author: [email protected] (Eric Veach)

#ifndef S2_R2RECT_H_
#define S2_R2RECT_H_

#include <iosfwd>

#include "base/check.h"
#include "s2/_fpcontractoff.h"
#include "s2/r1interval.h"
#include "s2/r2.h"

// An R2Rect represents a closed axis-aligned rectangle in the (x,y) plane.
//
// This class is intended to be copied by value as desired.  It uses
// the default copy constructor and assignment operator, however it is
// not a "plain old datatype" (POD) because it has virtual functions.
class R2Rect {};

inline R2Rect::R2Rect(R2Point const& lo, R2Point const& hi) {}

inline R2Rect::R2Rect(R1Interval const& x, R1Interval const& y) {}

inline R2Rect::R2Rect() {}

inline R2Rect R2Rect::Empty() {}

inline bool R2Rect::is_valid() const {}

inline bool R2Rect::is_empty() const {}

inline R2Rect R2Rect::FromPoint(R2Point const& p) {}

inline R2Point R2Rect::GetVertex(int k) const {}

inline R2Point R2Rect::GetVertex(int i, int j) const {}

inline R2Point R2Rect::GetCenter() const {}

inline R2Point R2Rect::GetSize() const {}

inline bool R2Rect::Contains(R2Point const& p) const {}

inline bool R2Rect::InteriorContains(R2Point const& p) const {}

inline R2Rect R2Rect::Expanded(double margin) const {}

inline bool R2Rect::operator==(R2Rect const& other) const {}

std::ostream& operator<<(std::ostream& os, R2Rect const& r);

#endif  // S2_R2RECT_H_