Restore back dialogs and interaction with objects

This commit is contained in:
Vladislav Khorev committed 2026-11-14 18:11:41 +06:00
1 parent 0fcf8c4fa5
commit f90324e2b7
7 files changed
+86 -57

No files matched your search

+6 -9
View File
@@ -278,7 +278,7 @@ namespace FRG
// --- interaction position pole ---
if (obj.state.hasInteractionPosition) {
const Eigen::Vector3f& p = obj.state.interactionPosition;
Eigen::Vector3f p = obj.state.interactionPosition.toEigen();
static constexpr float hw = 0.05f; // half width/depth
static constexpr float hh = 1.5f; // half height (pole = 3.0 tall)
@@ -340,7 +340,7 @@ namespace FRG
if (ctrlHeld) {
// Set the interaction position for the selected object (world XZ, Y=0).
auto& target = loc.interactiveObjects[selectedInteractiveObjectIndex];
target.state.interactionPosition = Eigen::Vector3f(worldHit.x(), 0.f, worldHit.z());
target.state.interactionPosition = Vec3fp(static_cast<fp>(worldHit.x()), static_cast<fp>(0.f), static_cast<fp>(worldHit.z()));
target.state.hasInteractionPosition = true;
boundsClickCount = 0; // cancel any in-progress bounds placement
buildInteractiveObjectBoundsMeshes();
@@ -417,12 +417,9 @@ namespace FRG
item["rotationX"] = obj.loadedObject.creationInfo.meshRotationX;
item["rotationY"] = obj.loadedObject.creationInfo.meshRotationY;
item["rotationZ"] = obj.loadedObject.creationInfo.meshRotationZ;
item["positionX"] = obj.state.jsonPositionX;
item["positionY"] = obj.state.jsonPositionY;
item["positionZ"] = obj.state.jsonPositionZ;
item["scale"] = obj.loadedObject.creationInfo.meshScale;
item["interactionRadius"] = obj.state.interactionRadius;
item["approachRadius"] = obj.state.approachRadius;
item["approachRadius"] = static_cast<double>(obj.state.approachRadius);
if (!obj.state.activateFunctionName.empty())
item["activateFunction"] = obj.state.activateFunctionName;
item["pivotX"] = obj.state.pivot.x();
@@ -435,9 +432,9 @@ namespace FRG
item["boundsMaxY"] = obj.state.boundsMax.y();
item["boundsMaxZ"] = obj.state.boundsMax.z();
if (obj.state.hasInteractionPosition) {
item["interactionPositionX"] = obj.state.interactionPosition.x();
item["interactionPositionY"] = obj.state.interactionPosition.y();
item["interactionPositionZ"] = obj.state.interactionPosition.z();
item["interactionPositionX"] = static_cast<double>(obj.state.interactionPosition.x);
item["interactionPositionY"] = static_cast<double>(obj.state.interactionPosition.y);
item["interactionPositionZ"] = static_cast<double>(obj.state.interactionPosition.z);
}
j["objects"].push_back(item);
}