added undo redo for builder (not for simulation data)
This commit is contained in:
@@ -8,7 +8,7 @@ import useModuleStore from '../../../../../store/useModuleStore';
|
||||
import { useSceneContext } from '../../../../scene/sceneContext';
|
||||
import { SkeletonUtils } from 'three-stdlib';
|
||||
|
||||
import { getAssetIksApi } from '../../../../../services/simulation/ik/getAssetIKs';
|
||||
import { getAssetFieldApi } from '../../../../../services/factoryBuilder/asset/floorAsset/getAssetField';
|
||||
import { ModelAnimator } from './animator/modelAnimator';
|
||||
import { useModelEventHandlers } from './eventHandlers/useEventHandlers';
|
||||
|
||||
@@ -26,19 +26,31 @@ function Model({ asset, isRendered, loader }: { readonly asset: Asset, isRendere
|
||||
const [boundingBox, setBoundingBox] = useState<THREE.Box3 | null>(null);
|
||||
const [isSelected, setIsSelected] = useState(false);
|
||||
const groupRef = useRef<THREE.Group>(null);
|
||||
const [ikData, setIkData] = useState<any>();
|
||||
const [fieldData, setFieldData] = useState<any>();
|
||||
const { selectedAssets } = useSelectedAssets();
|
||||
|
||||
useEffect(() => {
|
||||
if (!ikData && asset.eventData && asset.eventData.type === 'ArmBot') {
|
||||
getAssetIksApi(asset.assetId).then((data) => {
|
||||
if (data.iks) {
|
||||
const iks: IK[] = data.iks;
|
||||
setIkData(iks);
|
||||
if (!fieldData && asset.eventData) {
|
||||
getAssetFieldApi(asset.assetId).then((data) => {
|
||||
if (data.type === 'ArmBot') {
|
||||
if (data.data) {
|
||||
const fieldData: IK[] = data.data;
|
||||
setFieldData(fieldData);
|
||||
}
|
||||
} else if (data.type === 'Conveyor') {
|
||||
if (data.data) {
|
||||
const fieldData = data.data;
|
||||
setFieldData(fieldData);
|
||||
}
|
||||
} else if (data.type === 'Crane') {
|
||||
if (data.data) {
|
||||
const fieldData = data.data;
|
||||
setFieldData(fieldData);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}, [asset.modelUuid, ikData])
|
||||
}, [asset.modelUuid, fieldData])
|
||||
|
||||
useEffect(() => {
|
||||
setDeletableFloorItem(null);
|
||||
@@ -157,7 +169,7 @@ function Model({ asset, isRendered, loader }: { readonly asset: Asset, isRendere
|
||||
position={asset.position}
|
||||
rotation={asset.rotation}
|
||||
visible={asset.isVisible}
|
||||
userData={{ ...asset, iks: ikData }}
|
||||
userData={{ ...asset, fieldData: fieldData }}
|
||||
castShadow
|
||||
receiveShadow
|
||||
onDoubleClick={(e) => {
|
||||
|
||||
Reference in New Issue
Block a user