Fixed imgui error caused by merge
This commit is contained in:
parent
15bbf6892f
commit
a691d2ff28
|
@ -338,7 +338,7 @@ namespace SHADE
|
||||||
ImGui::PushID(SHFamilyID<SHComponent>::GetID<SHColliderComponent>());
|
ImGui::PushID(SHFamilyID<SHComponent>::GetID<SHColliderComponent>());
|
||||||
std::vector<const char*> collisionTagNames(SHCollisionTag::NUM_LAYERS);
|
std::vector<const char*> collisionTagNames(SHCollisionTag::NUM_LAYERS);
|
||||||
//Fetch tag names
|
//Fetch tag names
|
||||||
for (int i{}; i < SHCollisionTag::NUM_LAYERS; ++i)
|
for(int i{}; i < SHCollisionTag::NUM_LAYERS; ++i)
|
||||||
{
|
{
|
||||||
collisionTagNames[i] = SHCollisionTagMatrix::GetTagName(i).c_str();
|
collisionTagNames[i] = SHCollisionTagMatrix::GetTagName(i).c_str();
|
||||||
}
|
}
|
||||||
|
@ -387,73 +387,71 @@ namespace SHADE
|
||||||
else if (shape->GetType() == SHCollisionShape::Type::CAPSULE)
|
else if (shape->GetType() == SHCollisionShape::Type::CAPSULE)
|
||||||
{
|
{
|
||||||
|
|
||||||
//}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
SHEditorWidgets::CheckBox("Is Trigger", [shape] { return shape->IsTrigger(); }, [shape](bool value) { shape->SetIsTrigger(value); });
|
||||||
|
SHEditorWidgets::ComboBox("Tag", collisionTagNames, [shape]{return SHCollisionTagMatrix::GetTagIndex(shape->GetCollisionTag().GetName());}, [shape](int const& value){shape->SetCollisionTag(SHCollisionTagMatrix::GetTag(value));});
|
||||||
|
|
||||||
|
if(ImGui::CollapsingHeader("Physics Material"))
|
||||||
{
|
{
|
||||||
SHEditorWidgets::CheckBox("Is Trigger", [shape] { return shape->IsTrigger(); }, [shape](bool value) { shape->SetIsTrigger(value); });
|
SHEditorWidgets::DragFloat("Friction", [shape] { return shape->GetFriction(); }, [shape](float value) { shape->SetFriction(value); }, "Friction", 0.05f, 0.0f, 1.0f);
|
||||||
SHEditorWidgets::ComboBox("Tag", collisionTagNames, [shape] {return SHCollisionTagMatrix::GetTagIndex(shape->GetCollisionTag().GetName()); }, [shape](int const& value) {shape->SetCollisionTag(SHCollisionTagMatrix::GetTag(value)); });
|
SHEditorWidgets::DragFloat("Bounciness", [shape] { return shape->GetBounciness(); }, [shape](float value) { shape->SetBounciness(value); }, "Bounciness", 0.05f, 0.0f, 1.0f);
|
||||||
|
SHEditorWidgets::DragFloat("Mass Density", [shape] { return shape->GetDensity(); }, [shape](float value) { shape->SetDensity(value); }, "Mass Density", 0.1f, 0.0f);
|
||||||
if (ImGui::CollapsingHeader("Physics Material"))
|
|
||||||
{
|
|
||||||
SHEditorWidgets::DragFloat("Friction", [shape] { return shape->GetFriction(); }, [shape](float value) { shape->SetFriction(value); }, "Friction", 0.05f, 0.0f, 1.0f);
|
|
||||||
SHEditorWidgets::DragFloat("Bounciness", [shape] { return shape->GetBounciness(); }, [shape](float value) { shape->SetBounciness(value); }, "Bounciness", 0.05f, 0.0f, 1.0f);
|
|
||||||
SHEditorWidgets::DragFloat("Mass Density", [shape] { return shape->GetDensity(); }, [shape](float value) { shape->SetDensity(value); }, "Mass Density", 0.1f, 0.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
SHEditorWidgets::BeginPanel("Offsets", { ImGui::GetContentRegionAvail().x, 30.0f });
|
|
||||||
SHEditorWidgets::DragVec3("Position", { "X", "Y", "Z" }, [&shape] {return shape->GetPositionOffset(); }, [&shape](SHVec3 const& vec) {shape->SetPositionOffset(vec); });
|
|
||||||
SHEditorWidgets::DragVec3("Rotation", { "X", "Y", "Z" },
|
|
||||||
[&shape]
|
|
||||||
{
|
|
||||||
auto offset = shape->GetRotationOffset();
|
|
||||||
return offset;
|
|
||||||
},
|
|
||||||
[&shape](SHVec3 const& vec)
|
|
||||||
{
|
|
||||||
shape->SetRotationOffset(vec);
|
|
||||||
}, true);
|
|
||||||
SHEditorWidgets::EndPanel();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui::Button(std::format("{} Remove Collider #{}", ICON_MD_REMOVE, i).data()))
|
SHEditorWidgets::BeginPanel("Offsets",{ ImGui::GetContentRegionAvail().x, 30.0f });
|
||||||
|
SHEditorWidgets::DragVec3("Position", { "X", "Y", "Z" }, [&shape] {return shape->GetPositionOffset(); }, [&shape](SHVec3 const& vec) {shape->SetPositionOffset(vec); });
|
||||||
|
SHEditorWidgets::DragVec3("Rotation", { "X", "Y", "Z" },
|
||||||
|
[&shape]
|
||||||
{
|
{
|
||||||
colliderToDelete = i;
|
auto offset = shape->GetRotationOffset();
|
||||||
}
|
return offset;
|
||||||
|
},
|
||||||
|
[&shape](SHVec3 const& vec)
|
||||||
|
{
|
||||||
|
shape->SetRotationOffset(vec);
|
||||||
|
}, true);
|
||||||
SHEditorWidgets::EndPanel();
|
SHEditorWidgets::EndPanel();
|
||||||
ImGui::PopID();
|
|
||||||
}
|
}
|
||||||
if (colliderToDelete.has_value())
|
|
||||||
|
if (ImGui::Button(std::format("{} Remove Collider #{}", ICON_MD_REMOVE, i).data()))
|
||||||
{
|
{
|
||||||
component->GetCollider()->RemoveCollisionShape(colliderToDelete.value());
|
colliderToDelete = i;
|
||||||
}
|
}
|
||||||
ImGui::EndChild();
|
|
||||||
|
|
||||||
// TODO: Handle differences between composite & hull collider
|
SHEditorWidgets::EndPanel();
|
||||||
if (ImGui::BeginMenu("Add Collider"))
|
ImGui::PopID();
|
||||||
|
}
|
||||||
|
if (colliderToDelete.has_value())
|
||||||
|
{
|
||||||
|
component->GetCollider()->RemoveCollisionShape(colliderToDelete.value());
|
||||||
|
}
|
||||||
|
ImGui::EndChild();
|
||||||
|
|
||||||
|
// TODO: Handle differences between composite & hull collider
|
||||||
|
if (ImGui::BeginMenu("Add Collider"))
|
||||||
|
{
|
||||||
|
int newColl = -1;
|
||||||
|
|
||||||
|
if (ImGui::Selectable("Box Collider"))
|
||||||
{
|
{
|
||||||
int newColl = -1;
|
auto* compositeCollider = reinterpret_cast<SHCompositeCollider* const>(component->GetCollider());
|
||||||
|
compositeCollider->AddBoxCollisionShape(SHVec3::One);
|
||||||
if (ImGui::Selectable("Box Collider"))
|
|
||||||
{
|
|
||||||
auto* compositeCollider = reinterpret_cast<SHCompositeCollider* const>(component->GetCollider());
|
|
||||||
compositeCollider->AddBoxCollisionShape(SHVec3::One);
|
|
||||||
}
|
|
||||||
if (ImGui::Selectable("Sphere Collider"))
|
|
||||||
{
|
|
||||||
auto* compositeCollider = reinterpret_cast<SHCompositeCollider* const>(component->GetCollider());
|
|
||||||
compositeCollider->AddSphereCollisionShape(1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::EndMenu();
|
|
||||||
}
|
}
|
||||||
|
if (ImGui::Selectable("Sphere Collider"))
|
||||||
|
{
|
||||||
|
auto* compositeCollider = reinterpret_cast<SHCompositeCollider* const>(component->GetCollider());
|
||||||
|
compositeCollider->AddSphereCollisionShape(1.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DrawContextMenu(component);
|
DrawContextMenu(component);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::PopID();
|
ImGui::PopID();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue