diff --git a/src/controllers/functions/snapAll.ts b/src/controllers/functions/snapAll.ts
index bbd95d2..27e4961 100644
--- a/src/controllers/functions/snapAll.ts
+++ b/src/controllers/functions/snapAll.ts
@@ -1,15 +1,24 @@
import {TransformNode, Vector3} from "@babylonjs/core";
-import {AppConfig} from "../../util/appConfig";
+import {getAppConfig} from "../../util/appConfig";
import {snapRotateVal} from "../../util/functions/snapRotateVal";
import {snapGridVal} from "../../util/functions/snapGridVal";
-export function snapAll(node: TransformNode, config: AppConfig, pickPoint: Vector3) {
+export function snapAll(node: TransformNode, pickPoint: Vector3) {
+ const config = getAppConfig();
const transform = new TransformNode('temp', node.getScene());
transform.position = pickPoint;
node.setParent(transform);
- node.rotation = snapRotateVal(node.absoluteRotationQuaternion.toEulerAngles(), config.current.rotateSnap);
- transform.position = snapGridVal(transform.absolutePosition, config.current.gridSnap);
+ if (config.rotationSnapEnabled) {
+ node.rotation = snapRotateVal(node.absoluteRotationQuaternion.toEulerAngles(), parseFloat(config.rotationSnap));
+ }
+ if (config.locationSnapEnabled) {
+ transform.position = snapGridVal(transform.absolutePosition, parseFloat(config.locationSnap));
+ }
+
node.setParent(null);
- node.position = snapGridVal(node.absolutePosition, config.current.gridSnap);
+ if (config.locationSnapEnabled) {
+ node.position = snapGridVal(node.absolutePosition, parseFloat(config.locationSnap));
+ }
+
transform.dispose();
}
diff --git a/src/diagram/functions/dropMesh.ts b/src/diagram/functions/dropMesh.ts
index f416cb7..766852f 100644
--- a/src/diagram/functions/dropMesh.ts
+++ b/src/diagram/functions/dropMesh.ts
@@ -21,7 +21,7 @@ export function dropMesh(mesh: AbstractMesh,
case MeshTypeEnum.ENTITY:
if (diagramObject) {
diagramObject.baseTransform.setParent(null);
- snapAll(grabbedObject.baseTransform, diagramManager.config, pickPoint);
+ snapAll(grabbedObject.baseTransform, pickPoint);
diagramObject.mesh.computeWorldMatrix(true);
const event: DiagramEvent =
{
@@ -36,7 +36,7 @@ export function dropMesh(mesh: AbstractMesh,
break;
case MeshTypeEnum.TOOL:
grabbedObject.baseTransform.setParent(null);
- snapAll(grabbedObject.baseTransform, diagramManager.config, pickPoint);
+ snapAll(grabbedObject.baseTransform, pickPoint);
diagramObject.mesh.computeWorldMatrix(true);
const event: DiagramEvent =
{
diff --git a/src/integration/database/pouchdbPersistenceManager.ts b/src/integration/database/pouchdbPersistenceManager.ts
index 4d6b5ef..560b852 100644
--- a/src/integration/database/pouchdbPersistenceManager.ts
+++ b/src/integration/database/pouchdbPersistenceManager.ts
@@ -93,7 +93,7 @@ export class PouchdbPersistenceManager {
this.onDBEntityUpdateObservable.add((evt) => {
this._logger.debug(evt);
- if (evt.id != 'metadata' && evt.type != 'user') {
+ if (evt.id != 'metadata' && evt.type = 'user') {
diagramManager.onDiagramEventObservable.notifyObservers({
type: DiagramEventType.ADD,
entity: evt
diff --git a/src/react/marketing/about.tsx b/src/react/marketing/about.tsx
index 6a9593b..5548d91 100644
--- a/src/react/marketing/about.tsx
+++ b/src/react/marketing/about.tsx
@@ -1,82 +1,50 @@
-import {Accordion, Card, Center} from "@mantine/core";
+import {Card} from "@mantine/core";
import PageTemplate from "../pageTemplate";
export default function About() {
return (
+ Introducing Das Fad: Your Creative Hub for Digital Architecture and Collaboration
+
+ Das Fad is a groundbreaking platform designed to enable collaboration between software architects,
+ security professionals, software development teams, and risk management teams.
+
+ Combining cutting-edge technology with a user-friendly interface,
+ Das Fad empowers professionals to push the boundaries of creativity
+ while ensuring robust security and seamless collaboration.
+
+ With our intuitive tools, you can quickly build and share designs for new
+ software platforms and instantly get feedback from different
+ stakeholders. Whether you are working on a simple layout or an intricate global network,
+ you can quickly vet, change, and share your system designs with your team.
+
+ Our solution is secure by design, ensuring that your
+ intellectual property and sensitive data are protected at all times.
+ Das Fad employs advanced encryption and secure access protocols
+ to ensure that your information remains confidential and secure.
+
+ Dive deep into your projects with our forensic analysis tools.
+ Identify potential design flaws, assess structural integrity,
+ and integrate with your incident tracking tools to quickly
+ assess and mitigate risks.
+
+ Our model is collaboration first and all aspects are designed to be used
+ with multiple users while retaining all audit history of changes.
- VisuaLab VR: Unleash the Power of Immersive Diagramming
- Diagram complex systems effortlessly with VisuaLab VR – fast, intuitive, and 40x more
- effective.
-
+ Designed by software professionals for software professionals, + the experience is tailored to your needs. + +
) diff --git a/src/react/pages/configModal.tsx b/src/react/pages/configModal.tsx index e2298ec..176d886 100644 --- a/src/react/pages/configModal.tsx +++ b/src/react/pages/configModal.tsx @@ -1,5 +1,6 @@ import {Group, Modal, SegmentedControl, Stack, Switch} from "@mantine/core"; import {useEffect, useState} from "react"; +import {setAppConfig} from "../../util/appConfig"; const locationSnaps = [ {value: ".01", label: '1cm'}, @@ -51,7 +52,8 @@ export default function ConfigModal({configOpened, closeConfig}) { snapTurnSnapEnabled: snapTurnSnapEnabled, flyModeEnabled: flyModeEnabled } - localStorage.setItem('config', JSON.stringify(config)) + setAppConfig(config); + }, [locationSnap, locationSnapEnabled, rotationSnap, rotationSnapEnabled, snapTurnSnap, snapTurnSnapEnabled, flyModeEnabled]); return (