Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
bounding_box.h 1.36 KiB
/*******************************************************************************
 * Copyright (c) 2021-2022, Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *******************************************************************************/

//-----------------------------------------------------------------------------
/** @file  bounding_box.h */
//-----------------------------------------------------------------------------

#ifndef MANTLEAPI_COMMON_BOUNDINGBOX_H
#define MANTLEAPI_COMMON_BOUNDINGBOX_H

#include <MantleAPI/Common/dimension.h>
#include <MantleAPI/Common/vector.h>
#include <units.h>

namespace mantle_api
{
/// The geometric center is defined in the local entity coordinate system.
/// The geometric center is defined in relation to the origin of the
/// entity coordinate system.
struct BoundingBox
{
  Vec3<units::length::meter_t> geometric_center{};
  Dimension3 dimension{};
};

inline bool operator==(const BoundingBox& lhs, const BoundingBox& rhs) noexcept
{
  return lhs.geometric_center == rhs.geometric_center &&
         lhs.dimension == rhs.dimension;
}

}  // namespace mantle_api

#endif  // MANTLEAPI_COMMON_BOUNDINGBOX_H