From 29541540c9afb3291b9e08268ce9935e69d65234 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 28 Jul 2024 19:13:52 -0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Primitive=20type=20selection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit primitive type selection in efficient ransac modal added --- src/api/types/processing.ts | 1 + src/components/formModal/index.tsx | 26 +++++++++++++++---- src/components/formModal/types.ts | 8 ++++++ .../modals/processing/efficientRansac.tsx | 23 ++++++++++++++++ src/hooks/processing/useEfficientRansac.tsx | 2 ++ src/utils/types/processing.ts | 1 + 6 files changed, 56 insertions(+), 5 deletions(-) diff --git a/src/api/types/processing.ts b/src/api/types/processing.ts index 726601b..3e3844e 100644 --- a/src/api/types/processing.ts +++ b/src/api/types/processing.ts @@ -16,6 +16,7 @@ export type EfficientRansacParams = { epsilon: number; cluster_epsilon: number; normal_threshold: number; + primitive: [string]; }; export type RansacResultsDto = { diff --git a/src/components/formModal/index.tsx b/src/components/formModal/index.tsx index ecb0e8e..78888fa 100644 --- a/src/components/formModal/index.tsx +++ b/src/components/formModal/index.tsx @@ -3,7 +3,7 @@ import React, { SyntheticEvent, useRef, useState } from "react"; /* COMPONENTS */ import FormParameter from "./item"; -import { Button, Modal } from "antd"; +import { Button, Modal, Checkbox, Col, Row } from "antd"; import Draggable from "react-draggable"; import { CloseOutlined } from "@ant-design/icons"; @@ -19,7 +19,8 @@ function FormModal({ submitText, cancelText, parameters, - blockCondition = false, + options, + blockCondition = true, blockDescription = "", onClose, onSubmit, @@ -104,11 +105,11 @@ function FormModal({ onSubmit={handleSubmit(onSubmit)} className="flex flex-col items-center" > - {blockCondition ? ( + {/* {blockCondition ? (

{blockDescription}

- ) : ( + ) : ( */} <> {subtitle && (

@@ -123,8 +124,23 @@ function FormModal({ {...item} /> ))} + console.log(values)} + > + + {options?.map(item => ( + + {item.label} + + ))} + + - )} + {/* )} */}
{!blockCondition && ( diff --git a/src/components/formModal/types.ts b/src/components/formModal/types.ts index 3e80c58..6a2e76b 100644 --- a/src/components/formModal/types.ts +++ b/src/components/formModal/types.ts @@ -18,6 +18,7 @@ export type FormModalProps = Pick< blockCondition?: boolean; blockDescription?: string; parameters: ParameterItem[]; + options?: Option[]; onSubmit: (data: T) => void; }; @@ -31,6 +32,13 @@ export type ParameterItem = { allowNegative?: boolean; }; +export type Option = { + label: string; + value: string; + disabled?: boolean; +} + + // Parameters type export type ParameterProps = ParameterItem & { error?: string; diff --git a/src/containers/modals/processing/efficientRansac.tsx b/src/containers/modals/processing/efficientRansac.tsx index 8e42e89..2bbd6b5 100644 --- a/src/containers/modals/processing/efficientRansac.tsx +++ b/src/containers/modals/processing/efficientRansac.tsx @@ -37,12 +37,35 @@ const EfficientRansacModal: FC = () => { probability: data.probability, cluster_epsilon: data.clusterEpsilon, normal_threshold: data.normalThreshold, + primitive: data.primitive }); closeModal(); }; return ( + options={[ + { + label: t("common.plane"), + value: "plane", + disabled: true, + }, + { + label: t("common.cylinder"), + value: "cylinder", + disabled: true, + }, + { + label: t("common.cone"), + value: "cone", + disabled: true, + }, + { + label: t("common.sphere"), + value: "sphere", + disabled: true, + }, + ]} parameters={[ { id: "probability", diff --git a/src/hooks/processing/useEfficientRansac.tsx b/src/hooks/processing/useEfficientRansac.tsx index 578b288..10bbbc0 100644 --- a/src/hooks/processing/useEfficientRansac.tsx +++ b/src/hooks/processing/useEfficientRansac.tsx @@ -38,6 +38,7 @@ export const EfficientRansacProvider: FC = ({ epsilon: 0, minPoints: 0, normalThreshold: 0, + primitive: [""], }); // Efficient Ransac handlers @@ -52,6 +53,7 @@ export const EfficientRansacProvider: FC = ({ epsilon: 0, minPoints: 0, normalThreshold: 0, + primitive: [""], }); const updateSuggestedParams = (strObj: string) => { setSuggestedParams({ diff --git a/src/utils/types/processing.ts b/src/utils/types/processing.ts index 2d42d27..aeead3f 100644 --- a/src/utils/types/processing.ts +++ b/src/utils/types/processing.ts @@ -4,4 +4,5 @@ export type EfficientRansacFormData = { epsilon: number; clusterEpsilon: number; normalThreshold: number; + primitive: [string]; };