12 vertices = other.vertices;
13 faceNormals = other.faceNormals;
20 vertices = std::move(other.vertices);
21 faceNormals = std::move(other.faceNormals);
28 return vertices[index];
33 vertices[index] = value;
34 GenerateNormalsFromVertices();
38 void TrapazoidalPrismCollider::GenerateNormalsFromVertices()
40 faceNormals[(std::size_t)FACE_NORMALS::LEFT] =
44 faceNormals[(std::size_t)FACE_NORMALS::RIGHT] =
48 faceNormals[(std::size_t)FACE_NORMALS::FRONT] =
52 faceNormals[(std::size_t)FACE_NORMALS::BACK] =
56 faceNormals[(std::size_t)FACE_NORMALS::TOP] =
60 faceNormals[(std::size_t)FACE_NORMALS::BOTTOM] =
67 double TrapazoidalPrismCollider::FaceDot(FACE_NORMALS face,
const Vector3d& point)
const
70 std::size_t coreVertexIdx;
73 case FACE_NORMALS::LEFT:
77 case FACE_NORMALS::RIGHT:
81 case FACE_NORMALS::FRONT:
85 case FACE_NORMALS::BACK:
89 case FACE_NORMALS::TOP:
93 case FACE_NORMALS::BOTTOM:
98 if ((std::size_t)face < 6)
99 return faceNormals[(std::size_t)face].DotProduct(point - vertices[coreVertexIdx]);
105 for (std::size_t i = 0; i < 6; i++)
106 if (FaceDot((FACE_NORMALS)i, point) < 0)