Реализовать загрузку 3D-моделей в Scene manager и выгрузку файлов для запуска симуляции

This commit is contained in:
IDONTSUDO 2024-02-04 13:12:53 +00:00 committed by Igor Brylyov
parent 11ca9cdb5e
commit 3fefd60b72
109 changed files with 2726 additions and 1190 deletions

View file

@ -1,15 +1,20 @@
import * as React from "react";
import { Row, Button } from "antd";
import { LoadPage } from "../../../core/ui/pages/load_page";
import { createPipelineStore } from "./create_pipeline_store";
import { observer } from "mobx-react-lite";
import { Icon, List } from "../../../core/ui/list/list";
import { CreateTriggerScreenPath } from "../../create_trigger/presentation/create_trigger_screen";
import { CreateProcessScreenPath } from "../../create_process/presentation/create_process_screen";
import { CreatePipelineStore } from "./create_pipeline_store";
import { CreatePipelineRepository } from "../data/create_pipeline_repository";
export const CreatePipelineScreenPath = "/create_pipeline";
export const CreatePipelineScreen: React.FunctionComponent = observer(() => {
const [createPipelineStore] = React.useState(() => new CreatePipelineStore(new CreatePipelineRepository()));
React.useEffect(() => {}, [createPipelineStore]);
return (
<>
<LoadPage
@ -29,9 +34,7 @@ export const CreatePipelineScreen: React.FunctionComponent = observer(() => {
icon={Icon.add}
/>
<div style={{ flexGrow: "1" }}>
<Button onClick={() => createPipelineStore.createPipeline()}>
Save result
</Button>
<Button onClick={() => createPipelineStore.createPipeline()}>Save result</Button>
<List
headers="new pipeline"
values={createPipelineStore.pipelineViewModels}

View file

@ -3,7 +3,7 @@ import { CreatePipelineRepository } from "../data/create_pipeline_repository";
import { ITriggerModel } from "../../../core/model/trigger_model";
import { IProcess } from "../../create_process/model/process_model";
import { message } from "antd";
import { BaseStore } from "../../../core/store/base_store";
import { SimpleErrorState } from "../../../core/store/base_store";
enum Type {
PROCESS,
@ -16,7 +16,7 @@ export interface UnionView {
uuid?: string;
}
export class CreatePipelineStore extends BaseStore {
export class CreatePipelineStore extends SimpleErrorState {
repository: CreatePipelineRepository;
triggersModels: ITriggerModel[] = [];
processModels: IProcess[] = [];
@ -34,9 +34,7 @@ export class CreatePipelineStore extends BaseStore {
}
filterPipelineViewModel(index: number): void {
this.pipelineViewModels = this.pipelineViewModels.filter(
(_el, i) => i !== index
);
this.pipelineViewModels = this.pipelineViewModels.filter((_el, i) => i !== index);
}
addTrigger(e: string, id: string): void {
const lastElement = this.pipelineViewModels.lastElement();
@ -82,12 +80,8 @@ export class CreatePipelineStore extends BaseStore {
message.error("not found pipelines process");
return;
}
const triggerId = this.pipelineViewModels.find(
(el) => el.type === Type.TRIGGER
)!.uuid as string;
const processId = this.pipelineViewModels.find(
(el) => el.type === Type.PROCESS
)!.uuid as string;
const triggerId = this.pipelineViewModels.find((el) => el.type === Type.TRIGGER)!.uuid as string;
const processId = this.pipelineViewModels.find((el) => el.type === Type.PROCESS)!.uuid as string;
this.repository.savePipeline({
process: processId,
@ -96,33 +90,10 @@ export class CreatePipelineStore extends BaseStore {
}
async loadProcess() {
this.isLoading = true;
const result = await this.repository.getProcessed();
result.fold(
(s) => {
this.processModels = s;
},
(_e) => {
this.isError = true;
}
);
this.isLoading = false;
this.mapOk("processModels", this.repository.getProcessed());
}
async loadTriggers() {
this.isLoading = true;
const result = await this.repository.getTriggers(1);
result.fold(
(s) => {
this.triggersModels = s;
},
(_e) => {
this.isError = true;
}
);
this.isLoading = false;
this.mapOk("triggersModels", this.repository.getTriggers());
}
}
export const createPipelineStore = new CreatePipelineStore(
new CreatePipelineRepository()
);