v3-Demo #101

Merged
Vishnu merged 11 commits from v3-Demo into main 2025-06-13 13:56:14 +00:00
6 changed files with 37 additions and 54 deletions
Showing only changes of commit 11aea042fd - Show all commits

View File

@ -8,6 +8,7 @@ import { useComparisonProduct, useMainProduct } from '../../../store/simulation/
import { usePlayButtonStore } from '../../../store/usePlayButtonStore'; import { usePlayButtonStore } from '../../../store/usePlayButtonStore';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { useDuplicateProductStore } from '../../../modules/duplicate/duplicateStores/duplicateProductStore'; import { useDuplicateProductStore } from '../../../modules/duplicate/duplicateStores/duplicateProductStore';
import ProductsDuplicate from '../../../modules/duplicate/duplicateSimulation/duplicateProduct/duplicateProduct';
function ComparisonScene() { function ComparisonScene() {
const { isPlaying } = usePlayButtonStore(); const { isPlaying } = usePlayButtonStore();
@ -119,6 +120,8 @@ function ComparisonScene() {
} }
<CompareLayOut /> <CompareLayOut />
<ProductsDuplicate projectId={"684bcd620a64bc2a815a88d6"} />
{(shouldShowComparisonResult && !loadingProgress) && <ComparisonResult />} {(shouldShowComparisonResult && !loadingProgress) && <ComparisonResult />}
</> </>
)} )}

View File

@ -10,15 +10,15 @@ import {
} from "../../../store/builder/store"; } from "../../../store/builder/store";
import Search from "../inputs/Search"; import Search from "../inputs/Search";
import OuterClick from "../../../utils/outerClick"; import OuterClick from "../../../utils/outerClick";
import { useProductStore } from "../../../store/simulation/useProductStore";
import Scene from "../../../modules/scene/scene"; import Scene from "../../../modules/scene/scene";
import { useComparisonProduct } from "../../../store/simulation/useSimulationStore"; import { useComparisonProduct } from "../../../store/simulation/useSimulationStore";
import { usePauseButtonStore, usePlayButtonStore } from "../../../store/usePlayButtonStore"; import { usePauseButtonStore, usePlayButtonStore } from "../../../store/usePlayButtonStore";
import DuplicateScene from "../../../modules/duplicate/sceneDuplicate"; import DuplicateScene from "../../../modules/duplicate/sceneDuplicate";
import { useDuplicateProductStore } from "../../../modules/duplicate/duplicateStores/duplicateProductStore";
const CompareLayOut = () => { const CompareLayOut = () => {
const { comparisonProduct, setComparisonProduct, clearComparisonProduct } = useComparisonProduct(); const { comparisonProduct, setComparisonProduct, clearComparisonProduct } = useComparisonProduct();
const { products } = useProductStore(); const { products } = useDuplicateProductStore();
const { setLoadingProgress } = useLoadingProgress(); const { setLoadingProgress } = useLoadingProgress();
const [width, setWidth] = useState("50vw"); const [width, setWidth] = useState("50vw");
const [isResizing, setIsResizing] = useState(false); const [isResizing, setIsResizing] = useState(false);

View File

@ -5,14 +5,13 @@ import { getAllProductsApi } from '../../../../services/simulation/products/geta
import { usePlayButtonStore, useResetButtonStore } from '../../../../store/usePlayButtonStore'; import { usePlayButtonStore, useResetButtonStore } from '../../../../store/usePlayButtonStore';
import { useSceneContext } from '../../../scene/sceneContext'; import { useSceneContext } from '../../../scene/sceneContext';
import { useProductContext } from '../../../simulation/products/productContext'; import { useProductContext } from '../../../simulation/products/productContext';
import { useComparisonProduct, useMainProduct } from '../../../../store/simulation/useSimulationStore'; import { useComparisonProduct } from '../../../../store/simulation/useSimulationStore';
import { useDuplicateProductStore } from '../../duplicateStores/duplicateProductStore'; import { useDuplicateProductStore } from '../../duplicateStores/duplicateProductStore';
function ProductsDuplicate({ projectId }: { projectId: string }) { function ProductsDuplicate({ projectId }: { projectId: string }) {
const { armBotStore, machineStore, conveyorStore, vehicleStore, storageUnitStore, layout } = useSceneContext(); const { armBotStore, machineStore, conveyorStore, vehicleStore, storageUnitStore, layout } = useSceneContext();
const { products, getProductById, addProduct, setProducts } = useDuplicateProductStore(); const { products, getProductById, setProducts } = useDuplicateProductStore();
const { selectedProductStore } = useProductContext(); const { selectedProductStore } = useProductContext();
const { setMainProduct } = useMainProduct();
const { selectedProduct, setSelectedProduct } = selectedProductStore(); const { selectedProduct, setSelectedProduct } = selectedProductStore();
const { addVehicle, clearvehicles } = vehicleStore(); const { addVehicle, clearvehicles } = vehicleStore();
const { addArmBot, clearArmBots } = armBotStore(); const { addArmBot, clearArmBots } = armBotStore();
@ -31,25 +30,8 @@ function ProductsDuplicate({ projectId }: { projectId: string }) {
useEffect(() => { useEffect(() => {
getAllProductsApi(projectId || '').then((data) => { getAllProductsApi(projectId || '').then((data) => {
if (data.length === 0) { if (data.length > 0) {
const id = THREE.MathUtils.generateUUID();
const name = 'Product 1';
addProduct(name, id);
upsertProductOrEventApi({
productName: name,
productUuid: id,
projectId: projectId || ''
})
if (layout === 'Main Layout') {
setSelectedProduct(id, name);
setMainProduct(id, name);
}
} else {
setProducts(data); setProducts(data);
if (layout === 'Main Layout') {
setSelectedProduct(data[0].productUuid, data[0].productName);
setMainProduct(data[0].productUuid, data[0].productName);
}
} }
}) })
}, []) }, [])

View File

@ -3,12 +3,10 @@ import ProductsDuplicate from './duplicateProduct/duplicateProduct'
import PointsDuplicate from './duplicatePoint/duplicatePoint' import PointsDuplicate from './duplicatePoint/duplicatePoint'
import TriggerDuplicate from './duplicateTrigger/duplicateTrigger' import TriggerDuplicate from './duplicateTrigger/duplicateTrigger'
function SimulationDuplicate({ projectId }: { projectId: string }) { function SimulationDuplicate() {
return ( return (
<> <>
<ProductsDuplicate projectId={projectId} />
<PointsDuplicate /> <PointsDuplicate />
<TriggerDuplicate /> <TriggerDuplicate />

View File

@ -9,14 +9,12 @@ import background from "../../assets/textures/hdr/mudroadpuresky2k.hdr";
import ControlsDuplicate from "./duplicateSetup/controlsDuplicate"; import ControlsDuplicate from "./duplicateSetup/controlsDuplicate";
import PostProcessingDuplicate from "./duplicateSetup/postProcessingDuplicate"; import PostProcessingDuplicate from "./duplicateSetup/postProcessingDuplicate";
import { Color } from "three"; import { Color } from "three";
import { SceneProvider } from "../scene/sceneContext";
import SimulationDuplicate from "./duplicateSimulation/duplicateSimulation"; import SimulationDuplicate from "./duplicateSimulation/duplicateSimulation";
export default function DuplicateScene() { export default function DuplicateScene() {
const projectId = "684bcd620a64bc2a815a88d6"; const projectId = "684bcd620a64bc2a815a88d6";
return ( return (
<SceneProvider layout='Comparison Layout'>
<Canvas <Canvas
id="sceneCanvas" id="sceneCanvas"
shadows shadows
@ -46,8 +44,7 @@ export default function DuplicateScene() {
<BuilderDuplicate projectId={projectId} /> <BuilderDuplicate projectId={projectId} />
<SimulationDuplicate projectId={projectId} /> <SimulationDuplicate />
</Canvas> </Canvas>
</SceneProvider>
); );
} }

View File

@ -34,6 +34,7 @@ import { setFloorItemApi } from "../services/factoryBuilder/assest/floorAsset/se
import { useAssetsStore } from "../store/builder/useAssetStore"; import { useAssetsStore } from "../store/builder/useAssetStore";
import ComparisonSceneProvider from "../components/layout/scenes/ComparisonSceneProvider"; import ComparisonSceneProvider from "../components/layout/scenes/ComparisonSceneProvider";
import MainSceneProvider from "../components/layout/scenes/MainSceneProvider"; import MainSceneProvider from "../components/layout/scenes/MainSceneProvider";
import { SceneProvider } from "../modules/scene/sceneContext";
const Project: React.FC = () => { const Project: React.FC = () => {
let navigate = useNavigate(); let navigate = useNavigate();
@ -127,7 +128,9 @@ const Project: React.FC = () => {
return ( return (
<div className="project-main"> <div className="project-main">
<SceneProvider layout='Comparison Layout'>
<ComparisonSceneProvider /> <ComparisonSceneProvider />
</SceneProvider>
<MainSceneProvider /> <MainSceneProvider />
{selectedUser && <FollowPerson />} {selectedUser && <FollowPerson />}
{isLogListVisible && ( {isLogListVisible && (