12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /**
- * \defgroup Math2D Math2D library
- * @{
- */
- //-----------------------------------------------------------------------------
- //! exposed from C++ (do not change)
- enum WindingOrder
- {
- CounterClockwise, // 0
- Clockwise, // 1
- Invalid // 2
- }
- class Math2D
- {
- private void Math2D();
- private void ~Math2D();
- /*!
- Check if a `point` is inside `polygon`.
- Takes polygon and point only in the XZ plane.
- */
- static proto bool IsPointInPolygonXZ(notnull array<vector> polygon, vector point);
- //! Check if `point` is inside triangle specified by points `p1`, `p2` and `p3`.
- static proto bool IsPointInTriangleXZ(vector p1, vector p2, vector p3, vector point);
- /*!
- Check if a point is inside `polygon`.
- \param polygon Must be an array of Vector2, every two consecutive floats represent one point in polygon.
- \param x X coordinate of point to test
- \param y Y coordinate of point to test
- */
- static proto bool IsPointInPolygon(notnull array<float> polygon, float x, float y);
- /*!
- Determines winding order of triangle given by points `a`, `b`, `c`. If the triangles
- form a line, WindingOrder.Invalid is returned.
- */
- static proto WindingOrder TriangleWindingXZ(vector a, vector b, vector c);
- }
- //@}
|