Implemented a custom physics engine #316
|
@ -66,7 +66,7 @@
|
|||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: -2.01111817, y: 7, z: 0.695722342}
|
||||
Translate: {x: -0.903104782, y: 7, z: -0.782080948}
|
||||
Rotate: {x: -0, y: 0, z: -0}
|
||||
Scale: {x: 1, y: 1, z: 1}
|
||||
IsActive: true
|
||||
|
|
|
@ -130,12 +130,12 @@ namespace SHADE
|
|||
const SHVec3 CP = P1 + projection * tangent;
|
||||
|
||||
// Check 2nd condition
|
||||
// Get adjacent normal from twin half edge
|
||||
const int32_t EDGE_INDEX = FACE.vertexIndices[CLOSEST_POINT].edgeIndex;
|
||||
const int32_t TWIN_EDGE = HALF_EDGE_STRUCTURE->GetHalfEdge(EDGE_INDEX).twinEdgeIndex;
|
||||
// Get adjacent normal from the cross product (tangent x normal)
|
||||
//const int32_t EDGE_INDEX = FACE.vertexIndices[CLOSEST_POINT].edgeIndex;
|
||||
//const int32_t TWIN_EDGE = HALF_EDGE_STRUCTURE->GetHalfEdge(EDGE_INDEX).twinEdgeIndex;
|
||||
|
||||
const int32_t ADJ_FACE = HALF_EDGE_STRUCTURE->GetHalfEdge(TWIN_EDGE).faceIndex;
|
||||
const SHVec3& ADJ_NORMAL = POLYHEDRON.GetNormal(ADJ_FACE);
|
||||
//const int32_t ADJ_FACE = HALF_EDGE_STRUCTURE->GetHalfEdge(TWIN_EDGE).faceIndex;
|
||||
const SHVec3 ADJ_NORMAL = SHVec3::Cross(tangent, FACE_NORMAL);
|
||||
|
||||
projection = SHVec3::Dot(P1_TO_CENTER, ADJ_NORMAL);
|
||||
if (projection >= 0.0f)
|
||||
|
@ -172,12 +172,14 @@ namespace SHADE
|
|||
const SHVec3 CP = P1 + projection * tangent;
|
||||
|
||||
// Check 2nd condition
|
||||
// Get adjacent normal from twin half edge
|
||||
const int32_t EDGE_INDEX = FACE.vertexIndices[P3_INDEX].edgeIndex;
|
||||
const int32_t TWIN_EDGE = HALF_EDGE_STRUCTURE->GetHalfEdge(EDGE_INDEX).twinEdgeIndex;
|
||||
// Get adjacent normal from the cross product (normal x tangent)
|
||||
//const int32_t EDGE_INDEX = FACE.vertexIndices[P3_INDEX].edgeIndex;
|
||||
//const int32_t TWIN_EDGE = HALF_EDGE_STRUCTURE->GetHalfEdge(EDGE_INDEX).twinEdgeIndex;
|
||||
|
||||
//const int32_t ADJ_FACE = HALF_EDGE_STRUCTURE->GetHalfEdge(TWIN_EDGE).faceIndex;
|
||||
//const SHVec3& ADJ_NORMAL = POLYHEDRON.GetNormal(ADJ_FACE);
|
||||
const SHVec3 ADJ_NORMAL = SHVec3::Cross(FACE_NORMAL, tangent);
|
||||
|
||||
const int32_t ADJ_FACE = HALF_EDGE_STRUCTURE->GetHalfEdge(TWIN_EDGE).faceIndex;
|
||||
const SHVec3& ADJ_NORMAL = POLYHEDRON.GetNormal(ADJ_FACE);
|
||||
|
||||
projection = SHVec3::Dot(P1_TO_CENTER, ADJ_NORMAL);
|
||||
if (projection >= 0.0f)
|
||||
|
|
Loading…
Reference in New Issue