97 lines
2.7 KiB
C++
97 lines
2.7 KiB
C++
//-----------------------------------------------------------------------------
|
|
// Project : SDK Core
|
|
//
|
|
// Category : SDK Core Interfaces
|
|
// Filename : pluginterfaces/base/geoconstants.h
|
|
// Created by : Steinberg, 11/2014
|
|
// Description : Defines orientations and directions as also used by fpoint.h and frect.h
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
// This file is part of a Steinberg SDK. It is subject to the license terms
|
|
// in the LICENSE file found in the top-level directory of this distribution
|
|
// and at www.steinberg.net/sdklicenses.
|
|
// No part of the SDK, including this file, may be copied, modified, propagated,
|
|
// or distributed except according to the terms contained in the LICENSE file.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
//------------------------------------------------------------------------
|
|
namespace Steinberg {
|
|
|
|
//------------------------------------------------------------------------
|
|
enum Direction
|
|
{
|
|
kNorth,
|
|
kNorthEast,
|
|
kEast,
|
|
kSouthEast,
|
|
kSouth,
|
|
kSouthWest,
|
|
kWest,
|
|
kNorthWest,
|
|
kNoDirection, //same position or center point of a geometry
|
|
|
|
kNumberOfDirections,
|
|
};
|
|
|
|
//------------------------------------------------------------------------
|
|
enum Orientation
|
|
{
|
|
kHorizontal,
|
|
kVertical,
|
|
|
|
kNumberOfOrientations
|
|
};
|
|
|
|
//------------------------------------------------------------------------
|
|
namespace GeoConstants {
|
|
|
|
//------------------------------------------------------------------------
|
|
inline Direction toOpposite (Direction dir)
|
|
{
|
|
switch (dir)
|
|
{
|
|
case kNorth : return kSouth;
|
|
case kNorthEast : return kSouthWest;
|
|
case kEast : return kWest;
|
|
case kSouthEast : return kNorthWest;
|
|
case kSouth : return kNorth;
|
|
case kSouthWest : return kNorthEast;
|
|
case kWest : return kEast;
|
|
case kNorthWest : return kSouthEast;
|
|
case kNoDirection : return kNoDirection;
|
|
default:
|
|
return kNumberOfDirections;
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------------------------
|
|
inline Orientation toOrientation (Direction dir)
|
|
{
|
|
switch (dir)
|
|
{
|
|
case kNorth : return kVertical;
|
|
case kEast : return kHorizontal;
|
|
case kSouth : return kVertical;
|
|
case kWest : return kHorizontal;
|
|
default:
|
|
return kNumberOfOrientations;
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------------------------
|
|
inline Orientation toOrthogonalOrientation (Orientation dir)
|
|
{
|
|
switch (dir)
|
|
{
|
|
case kVertical : return kHorizontal;
|
|
case kHorizontal : return kVertical;
|
|
default:
|
|
return kNumberOfOrientations;
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------------------------
|
|
} // namespace GeoConstants
|
|
} // namespace Steinberg
|