WhiteBoxModifierUtil.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. namespace WhiteBox
  10. {
  11. //! Enumerate the current append state for new vertices.
  12. enum class AppendStage
  13. {
  14. None, //!< No vertices currently being appended.
  15. Initiated, //!< An append action has started.
  16. Complete, //!< An append action has finished.
  17. };
  18. //! The type of intersection detected when interacting
  19. //! with a white box mesh in the viewport.
  20. enum class GeometryIntersection
  21. {
  22. Edge,
  23. Polygon,
  24. Vertex,
  25. None
  26. };
  27. struct EdgeIntersection;
  28. struct PolygonIntersection;
  29. struct VertexIntersection;
  30. //! Return the closest intersection out of the three different kinds
  31. //! (vertex, edge or polygon).
  32. GeometryIntersection FindClosestGeometryIntersection(
  33. const AZStd::optional<EdgeIntersection>& edgeIntersection,
  34. const AZStd::optional<PolygonIntersection>& polygonIntersection,
  35. const AZStd::optional<VertexIntersection>& vertexIntersection);
  36. } // namespace WhiteBox