You're breathtaking!
This commit is contained in:
58
Source/Engine/CSG/Polygon.h
Normal file
58
Source/Engine/CSG/Polygon.h
Normal file
@@ -0,0 +1,58 @@
|
||||
// Copyright (c) 2012-2020 Wojciech Figat. All rights reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Engine/Core/Math/AABB.h"
|
||||
|
||||
namespace CSG
|
||||
{
|
||||
enum PolygonSplitResult
|
||||
{
|
||||
/// <summary>
|
||||
/// Polygon is completely inside half-space defined by plane
|
||||
/// </summary>
|
||||
CompletelyInside,
|
||||
|
||||
/// <summary>
|
||||
/// Polygon is completely outside half-space defined by plane
|
||||
/// </summary>
|
||||
CompletelyOutside,
|
||||
|
||||
/// <summary>
|
||||
/// Polygon has been split into two parts by plane
|
||||
/// </summary>
|
||||
Split,
|
||||
|
||||
/// <summary>
|
||||
/// Polygon is aligned with cutting plane and the polygons' normal points in the same direction
|
||||
/// </summary>
|
||||
PlaneAligned,
|
||||
|
||||
/// <summary>
|
||||
/// Polygon is aligned with cutting plane and the polygons' normal points in the opposite direction
|
||||
/// </summary>
|
||||
PlaneOppositeAligned
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Polygon structure
|
||||
/// </summary>
|
||||
struct Polygon
|
||||
{
|
||||
int32 FirstEdgeIndex;
|
||||
int32 SurfaceIndex;
|
||||
bool Visible;
|
||||
bool Inverted;
|
||||
AABB Bounds;
|
||||
|
||||
Polygon()
|
||||
{
|
||||
// TODO: remove this constructor to boost performance??
|
||||
FirstEdgeIndex = INVALID_INDEX;
|
||||
SurfaceIndex = INVALID_INDEX;
|
||||
Inverted = false;
|
||||
Visible = false;
|
||||
Bounds = AABB();
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user