From e592ceeb65088e55d67ac531827c3470fd54920b Mon Sep 17 00:00:00 2001 From: "bocska.karina" <bocska.karina@hallgato.ppke.hu> Date: Sun, 27 Oct 2024 12:01:21 +0100 Subject: [PATCH] quad editing, deleting --- Assets/Icons/remove.png | Bin 0 -> 13015 bytes Assets/Icons/remove.png.meta | 140 ++++++ Assets/Material 1.mat | 4 +- Assets/Prefabs/BlockSelect.prefab | 46 +- Assets/Prefabs/FittedQuad.prefab | 327 ++++++++++++++ Assets/Prefabs/FittedQuad.prefab.meta | 7 + Assets/Prefabs/VertexPoint.prefab | 23 +- .../XRI Default Input Actions.inputactions | 15 +- Assets/Scenes/SampleScene.unity | 421 ++++++++++++++++++ Assets/Scrips/Components/Block/BlockRotate.cs | 14 +- Assets/Scrips/Components/Quad.meta | 8 + Assets/Scrips/Components/Quad/FittedQuad.cs | 73 +++ .../Scrips/Components/Quad/FittedQuad.cs.meta | 11 + Assets/Scrips/Components/Quad/VertexPoint.cs | 40 ++ .../Components/Quad/VertexPoint.cs.meta | 11 + .../Components/Selection/BlockSelect.cs | 18 +- Assets/Scrips/Contexts/EditState.cs | 5 +- .../Scrips/Controllers/MainMenuController.cs | 12 - .../Scrips/Controllers/ProgramController.cs | 34 ++ .../Controllers/SelectPointsController.cs | 165 +++---- Assets/Scrips/Utils/Save.cs | 5 + .../SampleScene.scenetemplate | 12 +- .../Prefabs/UI/List Item Button.prefab | 27 +- .../Prefabs/UI/Spatial Panel Scroll.prefab | 10 +- 24 files changed, 1248 insertions(+), 180 deletions(-) create mode 100644 Assets/Icons/remove.png create mode 100644 Assets/Icons/remove.png.meta create mode 100644 Assets/Prefabs/FittedQuad.prefab create mode 100644 Assets/Prefabs/FittedQuad.prefab.meta create mode 100644 Assets/Scrips/Components/Quad.meta create mode 100644 Assets/Scrips/Components/Quad/FittedQuad.cs create mode 100644 Assets/Scrips/Components/Quad/FittedQuad.cs.meta create mode 100644 Assets/Scrips/Components/Quad/VertexPoint.cs create mode 100644 Assets/Scrips/Components/Quad/VertexPoint.cs.meta diff --git a/Assets/Icons/remove.png b/Assets/Icons/remove.png new file mode 100644 index 0000000000000000000000000000000000000000..47344fb7a5f5404ac503e6406478f6d45dc3b368 GIT binary patch literal 13015 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 Qfq{X+)78&qol`;+0PEJms{jB1 literal 0 HcmV?d00001 diff --git a/Assets/Icons/remove.png.meta b/Assets/Icons/remove.png.meta new file mode 100644 index 0000000..a09435d --- /dev/null +++ b/Assets/Icons/remove.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 1f7e5f686df183d4ca1c96949b4e83c1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Material 1.mat b/Assets/Material 1.mat index 536c372..1e020ed 100644 --- a/Assets/Material 1.mat +++ b/Assets/Material 1.mat @@ -15,7 +15,7 @@ Material: m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 + m_DoubleSidedGI: 1 m_CustomRenderQueue: -1 stringTagMap: RenderType: Opaque @@ -89,7 +89,7 @@ Material: - _BumpScale: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 - - _Cull: 2 + - _Cull: 0 - _Cutoff: 0.5 - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 diff --git a/Assets/Prefabs/BlockSelect.prefab b/Assets/Prefabs/BlockSelect.prefab index cd12e9e..f668993 100644 --- a/Assets/Prefabs/BlockSelect.prefab +++ b/Assets/Prefabs/BlockSelect.prefab @@ -14,8 +14,8 @@ GameObject: - component: {fileID: 1779685088826987312} - component: {fileID: 3268846158774871891} - component: {fileID: -4358216392600172306} - - component: {fileID: 7216982225745790517} - component: {fileID: -5980889118735951575} + - component: {fileID: -2647738392038745357} m_Layer: 0 m_Name: BlockSelect m_TagString: surface @@ -140,7 +140,20 @@ MonoBehaviour: RotateAnchorPrefab: {fileID: 2874721107243629612, guid: 12accfaeb3e281a48acb41e0100ee76d, type: 3} inputTransform: {fileID: 0} activateRotationEvent: {fileID: 4987378303488695193, guid: c348712bda248c246b8c49b3db54643f, type: 3} ---- !u!114 &7216982225745790517 +--- !u!114 &-5980889118735951575 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8126816444565180231} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f2c9d2fbf2ef104992bb5e55dae6b42, type: 3} + m_Name: + m_EditorClassIdentifier: + selectPointsController: {fileID: 0} +--- !u!114 &-2647738392038745357 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -164,7 +177,7 @@ MonoBehaviour: m_FocusMode: 1 m_CustomReticle: {fileID: 0} m_AllowGazeInteraction: 0 - m_AllowGazeSelect: 0 + m_AllowGazeSelect: 1 m_OverrideGazeTimeToSelect: 0 m_GazeTimeToSelect: 0.5 m_OverrideTimeToAutoDeselectGaze: 0 @@ -190,7 +203,19 @@ MonoBehaviour: m_Calls: [] m_SelectEntered: m_PersistentCalls: - m_Calls: [] + m_Calls: + - m_Target: {fileID: -5980889118735951575} + m_TargetAssemblyTypeName: BlockSelect, Assembly-CSharp + m_MethodName: DeleteSelection + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 m_SelectExited: m_PersistentCalls: m_Calls: [] @@ -242,16 +267,3 @@ MonoBehaviour: m_OnDeactivate: m_PersistentCalls: m_Calls: [] ---- !u!114 &-5980889118735951575 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8126816444565180231} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2f2c9d2fbf2ef104992bb5e55dae6b42, type: 3} - m_Name: - m_EditorClassIdentifier: - selectPointsController: {fileID: 0} diff --git a/Assets/Prefabs/FittedQuad.prefab b/Assets/Prefabs/FittedQuad.prefab new file mode 100644 index 0000000..7ffb451 --- /dev/null +++ b/Assets/Prefabs/FittedQuad.prefab @@ -0,0 +1,327 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2123888734268900958 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7415406206536596469} + - component: {fileID: 6085268248900285533} + - component: {fileID: 1362285220292941322} + - component: {fileID: 7157457943888117503} + - component: {fileID: 2186370549273694175} + - component: {fileID: -2410014600031643114} + - component: {fileID: 7780733699600987831} + - component: {fileID: -4630001669494647888} + m_Layer: 0 + m_Name: FittedQuad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7415406206536596469 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123888734268900958} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6085268248900285533 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123888734268900958} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1362285220292941322 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123888734268900958} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f7d23c7a57a992c4282494782cba5215, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &7157457943888117503 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123888734268900958} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &2186370549273694175 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123888734268900958} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &-2410014600031643114 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123888734268900958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 0} + m_AllowGazeInteraction: 1 + m_AllowGazeSelect: 1 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 2 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 0 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + m_TrackScale: 0 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 0 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_AttachPointCompatibilityMode: 0 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 0 +--- !u!114 &7780733699600987831 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123888734268900958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0a1302d0d134fa8a2a5b3bf4aec3c20, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PermittedDisplacementAxes: 3 + m_ConstrainedAxisDisplacementMode: 0 + m_TwoHandedRotationMode: 1 + m_AllowOneHandedScaling: 1 + m_AllowTwoHandedScaling: 0 + m_OneHandedScaleSpeed: 0.5 + m_ThresholdMoveRatioForScale: 0.05 + m_ClampScaling: 1 + m_MinimumScaleRatio: 0.25 + m_MaximumScaleRatio: 2 + m_ScaleMultiplier: 0.25 +--- !u!114 &-4630001669494647888 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123888734268900958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 20838c10ccf6e2746824ba579c0e1e09, type: 3} + m_Name: + m_EditorClassIdentifier: + vertexPointPrefab: {fileID: 8138111287210361984, guid: 5d21b49507ba4104f983122e372d6595, type: 3} diff --git a/Assets/Prefabs/FittedQuad.prefab.meta b/Assets/Prefabs/FittedQuad.prefab.meta new file mode 100644 index 0000000..4e8647a --- /dev/null +++ b/Assets/Prefabs/FittedQuad.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: acca7dbb0ace2e64c84057ecdceb3e15 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/VertexPoint.prefab b/Assets/Prefabs/VertexPoint.prefab index ac93c22..2780af8 100644 --- a/Assets/Prefabs/VertexPoint.prefab +++ b/Assets/Prefabs/VertexPoint.prefab @@ -15,7 +15,7 @@ GameObject: - component: {fileID: 492798701434058740} - component: {fileID: 4136171038367357647} - component: {fileID: 1183694293685742046} - - component: {fileID: -2749897353397705518} + - component: {fileID: 5808971997871397969} m_Layer: 0 m_Name: VertexPoint m_TagString: Untagged @@ -33,7 +33,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1.016, z: 3.35} - m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} + m_LocalScale: {x: 0.03, y: 0.03, z: 0.03} m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 0} @@ -255,15 +255,15 @@ MonoBehaviour: m_SmoothPosition: 0 m_SmoothPositionAmount: 8 m_TightenPosition: 0.1 - m_TrackRotation: 1 + m_TrackRotation: 0 m_SmoothRotation: 0 m_SmoothRotationAmount: 8 m_TightenRotation: 0.1 - m_TrackScale: 1 + m_TrackScale: 0 m_SmoothScale: 0 m_SmoothScaleAmount: 8 m_TightenScale: 0.1 - m_ThrowOnDetach: 1 + m_ThrowOnDetach: 0 m_ThrowSmoothingDuration: 0.25 m_ThrowSmoothingCurve: serializedVersion: 2 @@ -300,18 +300,18 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0a1302d0d134fa8a2a5b3bf4aec3c20, type: 3} m_Name: m_EditorClassIdentifier: - m_PermittedDisplacementAxes: -1 - m_ConstrainedAxisDisplacementMode: 1 + m_PermittedDisplacementAxes: 3 + m_ConstrainedAxisDisplacementMode: 0 m_TwoHandedRotationMode: 1 - m_AllowOneHandedScaling: 1 + m_AllowOneHandedScaling: 0 m_AllowTwoHandedScaling: 0 m_OneHandedScaleSpeed: 0.5 m_ThresholdMoveRatioForScale: 0.05 - m_ClampScaling: 1 + m_ClampScaling: 0 m_MinimumScaleRatio: 0.25 m_MaximumScaleRatio: 2 m_ScaleMultiplier: 0.25 ---- !u!114 &-2749897353397705518 +--- !u!114 &5808971997871397969 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -320,7 +320,6 @@ MonoBehaviour: m_GameObject: {fileID: 8138111287210361984} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 98b85445213936746822c3b05e91cac9, type: 3} + m_Script: {fileID: 11500000, guid: 7b4454cab98497f4b851b9f82db76cc5, type: 3} m_Name: m_EditorClassIdentifier: - parentBlockDeform: {fileID: 0} diff --git a/Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Input Actions.inputactions b/Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Input Actions.inputactions index 8efdc9b..0b96552 100644 --- a/Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Input Actions.inputactions +++ b/Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Input Actions.inputactions @@ -703,7 +703,7 @@ "initialStateCheck": true }, { - "name": "save", + "name": "Fit plane", "type": "Button", "id": "0031af44-5ced-4637-b320-dd79ef962b71", "expectedControlType": "Button", @@ -881,7 +881,18 @@ "interactions": "", "processors": "", "groups": "", - "action": "save", + "action": "Fit plane", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "bde33330-5b67-481b-874a-35bf06a2a347", + "path": "<XRController>{LeftHand}/{PrimaryButton}", + "interactions": "", + "processors": "", + "groups": "Generic XR Controller", + "action": "Fit plane", "isComposite": false, "isPartOfComposite": false }, diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 1a459de..b9b3e57 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -1940,6 +1940,7 @@ MonoBehaviour: - {fileID: 21300000, guid: 4782d855ca5a1534fb4e4c26dde1613d, type: 3} - {fileID: 21300000, guid: 0e952cbc137866843ab0f0aaac310dba, type: 3} - {fileID: 21300000, guid: 17e123028362b864f8cffc152bb19615, type: 3} + - {fileID: 21300000, guid: 1f7e5f686df183d4ca1c96949b4e83c1, type: 3} --- !u!1 &143237140 GameObject: m_ObjectHideFlags: 0 @@ -3900,6 +3901,12 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 1035790433963668018, guid: 085ce58b196caa446a8545c9dd388793, type: 3} insertIndex: -1 addedObject: {fileID: 1146522988} + - targetCorrespondingSourceObject: {fileID: 1035790433963668018, guid: 085ce58b196caa446a8545c9dd388793, type: 3} + insertIndex: -1 + addedObject: {fileID: 1855450724} + - targetCorrespondingSourceObject: {fileID: 1035790433963668018, guid: 085ce58b196caa446a8545c9dd388793, type: 3} + insertIndex: -1 + addedObject: {fileID: 1338359539} - targetCorrespondingSourceObject: {fileID: 1035790433963668018, guid: 085ce58b196caa446a8545c9dd388793, type: 3} insertIndex: -1 addedObject: {fileID: 301465756} @@ -5766,6 +5773,8 @@ MonoBehaviour: pointClouds: - {fileID: 1565662007} selectPointsEventAction: {fileID: -1827717145013635445, guid: c348712bda248c246b8c49b3db54643f, type: 3} + spawnPrefab: {fileID: 2123888734268900958, guid: acca7dbb0ace2e64c84057ecdceb3e15, type: 3} + maxNumberOfPoints: 300 --- !u!1001 &427008753 PrefabInstance: m_ObjectHideFlags: 0 @@ -16115,6 +16124,212 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1326031627} m_CullTransparentMesh: 1 +--- !u!1001 &1338359538 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 449044966} + m_Modifications: + - target: {fileID: 169305219790147484, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1248386867110803025, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1248386867110803025, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1248386867110803025, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_SizeDelta.x + value: 220 + objectReference: {fileID: 0} + - target: {fileID: 1248386867110803025, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431699, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Name + value: Export List Item Button (2) + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259952709508, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3199508834110206841, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_text + value: Clear Selection + objectReference: {fileID: 0} + - target: {fileID: 3199508834110206841, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_fontSize + value: 16 + objectReference: {fileID: 0} + - target: {fileID: 3199508834110206841, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_enableAutoSizing + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5443163050158697355, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6150670977401591343, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6150670977401591343, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6150670977401591343, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6150670977401591343, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchoredPosition.x + value: 130.732 + objectReference: {fileID: 0} + - target: {fileID: 6150670977401591343, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 426651924} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: ClearSelection + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: SelectPointsController, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8488948026688725845, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8781133472592516893, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_PokeFillMaxSizeX + value: 235 + objectReference: {fileID: 0} + - target: {fileID: 8781133472592516893, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_PokeFillMaxSizeY + value: 60 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} +--- !u!224 &1338359539 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + m_PrefabInstance: {fileID: 1338359538} + m_PrefabAsset: {fileID: 0} --- !u!1 &1341980719 GameObject: m_ObjectHideFlags: 0 @@ -21802,6 +22017,212 @@ PrefabInstance: addedObject: {fileID: 1385002796} m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 65eb6b98091a5734ba9d9ca871cef69a, type: 3} +--- !u!1001 &1855450723 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 449044966} + m_Modifications: + - target: {fileID: 169305219790147484, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1248386867110803025, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1248386867110803025, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1248386867110803025, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_SizeDelta.x + value: 220 + objectReference: {fileID: 0} + - target: {fileID: 1248386867110803025, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431699, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Name + value: Export List Item Button (1) + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2397425259952709508, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3199508834110206841, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_text + value: Export Mesh + objectReference: {fileID: 0} + - target: {fileID: 3199508834110206841, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_fontSize + value: 16 + objectReference: {fileID: 0} + - target: {fileID: 3199508834110206841, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_enableAutoSizing + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5443163050158697355, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6150670977401591343, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6150670977401591343, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6150670977401591343, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6150670977401591343, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchoredPosition.x + value: 130.732 + objectReference: {fileID: 0} + - target: {fileID: 6150670977401591343, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 426651922} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: LoadProgram + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: ProgramController, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 7753147258609537286, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8488948026688725845, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8781133472592516893, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_PokeFillMaxSizeX + value: 235 + objectReference: {fileID: 0} + - target: {fileID: 8781133472592516893, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + propertyPath: m_PokeFillMaxSizeY + value: 60 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} +--- !u!224 &1855450724 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2397425259038431700, guid: fa5ef3b56cfeb4f4ba855cdf2610a578, type: 3} + m_PrefabInstance: {fileID: 1855450723} + m_PrefabAsset: {fileID: 0} --- !u!4 &1859349198 stripped Transform: m_CorrespondingSourceObject: {fileID: 7785151267686525226, guid: 048249d9a15aa3c459399751e860bde7, type: 3} diff --git a/Assets/Scrips/Components/Block/BlockRotate.cs b/Assets/Scrips/Components/Block/BlockRotate.cs index 35455b5..6853fb4 100644 --- a/Assets/Scrips/Components/Block/BlockRotate.cs +++ b/Assets/Scrips/Components/Block/BlockRotate.cs @@ -36,8 +36,6 @@ public class BlockRotate : MonoBehaviour _rotateAnchor.transform.position = inputTransform.position + inputTransform.forward * 0.5f; } } - - if (mode == EditState.EditType.Deform) _rotateAnchor.SetActive(false); } public void HandleRotateAnchor() @@ -86,18 +84,18 @@ public class BlockRotate : MonoBehaviour } } - private void FixedUpdate() - { - EditState.EditType mode = EditState.Instance.ActiveEditState; - _rotateAnchor.SetActive(mode == EditState.EditType.Rotate); - } - // Start is called before the first frame update void Start() { _rotateAnchor = Instantiate(RotateAnchorPrefab, this.transform.position, Quaternion.identity); _rotateAnchor.GetComponent<RotateAnchor>().Initialize(this); _rotateAnchor.SetActive(false); + EditState.Instance.RegisterListener(EditStateHandler); } + private void EditStateHandler() + { + EditState.EditType mode = EditState.Instance.ActiveEditState; + _rotateAnchor.SetActive(mode == EditState.EditType.Rotate); + } } diff --git a/Assets/Scrips/Components/Quad.meta b/Assets/Scrips/Components/Quad.meta new file mode 100644 index 0000000..a8a133e --- /dev/null +++ b/Assets/Scrips/Components/Quad.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 08edbe1de8e72754a823b9681e1bc68e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scrips/Components/Quad/FittedQuad.cs b/Assets/Scrips/Components/Quad/FittedQuad.cs new file mode 100644 index 0000000..42c9fb5 --- /dev/null +++ b/Assets/Scrips/Components/Quad/FittedQuad.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.XR.Interaction.Toolkit; + +public class FittedQuad : MonoBehaviour +{ + public GameObject vertexPointPrefab; + private Mesh _mesh; + private readonly GameObject[] _vertexAnchors = new GameObject[4]; + + private void Awake() + { + _mesh = this.GetComponent<MeshFilter>().mesh; + } + + private void Start() + { + InitAnchors(); + EditState.Instance.RegisterListener(EditStateHandler); + } + + private void EditStateHandler() + { + EditState.EditType mode = EditState.Instance.ActiveEditState; + foreach (GameObject anchor in _vertexAnchors) + { + anchor.SetActive(mode == EditState.EditType.Deform); + } + + this.GetComponent<XRGrabInteractable>().enabled = mode == EditState.EditType.Deform; + } + + private void InitAnchors() + { + Vector3[] vertices = _mesh.vertices; + for (int i = 0; i < vertices.Length; i++) + { + Vector3 vertex = vertices[i]; + GameObject anchor = Instantiate(vertexPointPrefab, this.transform.position, Quaternion.identity); + anchor.transform.parent = this.transform; + anchor.transform.localPosition = vertex; + anchor.transform.LookAt(anchor.transform.position + this.transform.forward); + _vertexAnchors[i] = anchor; + anchor.GetComponent<VertexPoint>().SetParentQuad(this); + } + } + + public void UpdateVertices() + { + Vector3[] vertices = _mesh.vertices; + for (int i = 0; i < vertices.Length; i++) + { + vertices[i] = _vertexAnchors[i].transform.localPosition; + } + + _mesh.vertices = vertices; + _mesh.RecalculateBounds(); + MeshCollider collider = GetComponent<MeshCollider>(); + collider.sharedMesh = _mesh; + } + + public void SetAnchors(Vector3[] positions) + { + for (int i = 0; i < positions.Length; i++) + { + _vertexAnchors[i].transform.localPosition = positions[i]; + } + + UpdateVertices(); + } +} diff --git a/Assets/Scrips/Components/Quad/FittedQuad.cs.meta b/Assets/Scrips/Components/Quad/FittedQuad.cs.meta new file mode 100644 index 0000000..2f0dc10 --- /dev/null +++ b/Assets/Scrips/Components/Quad/FittedQuad.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 20838c10ccf6e2746824ba579c0e1e09 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scrips/Components/Quad/VertexPoint.cs b/Assets/Scrips/Components/Quad/VertexPoint.cs new file mode 100644 index 0000000..74b0bf1 --- /dev/null +++ b/Assets/Scrips/Components/Quad/VertexPoint.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.XR.Interaction.Toolkit; + +public class VertexPoint : MonoBehaviour +{ + private FittedQuad _parentQuad; + private XRGrabInteractable grabInteractable; + private bool _isSelected = false; + + public void SetParentQuad(FittedQuad quad) + { + this._parentQuad = quad; + } + + private void Awake() + { + grabInteractable = GetComponent<XRGrabInteractable>(); + grabInteractable.selectExited.AddListener(HandleSelectExit); + grabInteractable.selectEntered.AddListener(HandleSelectEntered); + } + + private void HandleSelectEntered(SelectEnterEventArgs arg0) + { + _isSelected = true; + } + + private void HandleSelectExit(SelectExitEventArgs arg0) + { + _isSelected = false; + _parentQuad.UpdateVertices(); + } + + private void FixedUpdate() + { + if (_isSelected) _parentQuad.UpdateVertices(); + } +} diff --git a/Assets/Scrips/Components/Quad/VertexPoint.cs.meta b/Assets/Scrips/Components/Quad/VertexPoint.cs.meta new file mode 100644 index 0000000..658e57c --- /dev/null +++ b/Assets/Scrips/Components/Quad/VertexPoint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7b4454cab98497f4b851b9f82db76cc5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scrips/Components/Selection/BlockSelect.cs b/Assets/Scrips/Components/Selection/BlockSelect.cs index de4de7c..18330a6 100644 --- a/Assets/Scrips/Components/Selection/BlockSelect.cs +++ b/Assets/Scrips/Components/Selection/BlockSelect.cs @@ -1,23 +1,29 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.XR.Interaction.Toolkit; public class BlockSelect : MonoBehaviour { public SelectPointsController selectPointsController; - // Start is called before the first frame update - void Start() - { + private XRSimpleInteractable _xrSimpleInteractable; + private void Awake() + { + _xrSimpleInteractable = this.GetComponent<XRSimpleInteractable>(); } - // Update is called once per frame - void Update() + public void DeleteSelection() { - + if (EditState.Instance.ActiveEditState == EditState.EditType.Delete) + { + selectPointsController.RemoveSelection(this.gameObject); + } } + private void OnDestroy() { selectPointsController.RemoveSelection(this.gameObject); diff --git a/Assets/Scrips/Contexts/EditState.cs b/Assets/Scrips/Contexts/EditState.cs index 0b30b9c..05caf7c 100644 --- a/Assets/Scrips/Contexts/EditState.cs +++ b/Assets/Scrips/Contexts/EditState.cs @@ -16,11 +16,12 @@ public class EditState : MonoBehaviour { Deform = 0, Rotate = 1, - Select = 2 + Select = 2, + Delete = 3 } public EditType ActiveEditState { get; private set; } - private EditType[] _stateWheel = { EditType.Deform, EditType.Rotate, EditType.Select }; + private EditType[] _stateWheel = { EditType.Deform, EditType.Rotate, EditType.Select, EditType.Delete }; private int _stateIndex = 0; private void SwitchState(InputAction.CallbackContext context) diff --git a/Assets/Scrips/Controllers/MainMenuController.cs b/Assets/Scrips/Controllers/MainMenuController.cs index 942729c..9224b11 100644 --- a/Assets/Scrips/Controllers/MainMenuController.cs +++ b/Assets/Scrips/Controllers/MainMenuController.cs @@ -35,18 +35,6 @@ public class MainMenuController : MonoBehaviour } } - // Start is called before the first frame update - void Start() - { - - } - - // Update is called once per frame - void Update() - { - - } - private void FixedUpdate() { if (!_menuActive) return; diff --git a/Assets/Scrips/Controllers/ProgramController.cs b/Assets/Scrips/Controllers/ProgramController.cs index bab8b50..90e800e 100644 --- a/Assets/Scrips/Controllers/ProgramController.cs +++ b/Assets/Scrips/Controllers/ProgramController.cs @@ -10,6 +10,7 @@ using UnityEngine.InputSystem; public class ProgramController : MonoBehaviour { private SpawnBlockEvent spawnBlockEvent; + private SelectPointsController selectPointsController; public Transform UserTransform; // public InputActionReference saveEventAction; @@ -19,6 +20,7 @@ public class ProgramController : MonoBehaviour private InputLoader _inputLoad; private readonly List<GameObject> _spawnedBlocks = new(); + private readonly List<GameObject> _spawnedQuads = new(); private string _savePath; private SurrogateSelector _surrogateSelector; @@ -27,6 +29,7 @@ public class ProgramController : MonoBehaviour private void Awake() { spawnBlockEvent = this.GetComponent<SpawnBlockEvent>(); + selectPointsController = this.GetComponent<SelectPointsController>(); this._savePath = Application.persistentDataPath + "/program.save"; // _inputSave = new(saveEventAction, SaveProgram); @@ -44,6 +47,11 @@ public class ProgramController : MonoBehaviour _spawnedBlocks.Add(block); } + public void RegisterQuad(GameObject quad) + { + _spawnedQuads.Add(quad); + } + private Save CreateSave() { Save save = new(); @@ -73,6 +81,21 @@ public class ProgramController : MonoBehaviour save.BlockAnchors.Add(anchorsData); } + foreach (GameObject quad in _spawnedQuads) + { + Vector3[] quadVertices = quad.GetComponent<MeshFilter>().mesh.vertices; + Vector3[] quadData = new Vector3[2 + quadVertices.Length]; + quadData[0] = quad.transform.position; + quadData[1] = -quad.transform.forward; + + for (int i = 0; i < quadVertices.Length; i++) + { + quadData[i + 2] = quadVertices[i]; + } + + save.Quads.Add(quadData); + } + return save; } @@ -98,6 +121,15 @@ public class ProgramController : MonoBehaviour _spawnedBlocks.Clear(); } + if (_spawnedQuads.Count > 0) + { + foreach (GameObject quad in _spawnedQuads) + { + Destroy(quad); + } + _spawnedQuads.Clear(); + } + FileStream fs = File.Open(this._savePath, FileMode.Open); Save save = (Save)_binaryFormatter.Deserialize(fs); @@ -106,6 +138,8 @@ public class ProgramController : MonoBehaviour UserTransform.position = save.UserTransform[0]; UserTransform.eulerAngles = save.UserTransform[1]; spawnBlockEvent.LoadBlocks(save.Blocks, save.BlockAnchors); + + } } diff --git a/Assets/Scrips/Controllers/SelectPointsController.cs b/Assets/Scrips/Controllers/SelectPointsController.cs index 49d5876..2ad5cec 100644 --- a/Assets/Scrips/Controllers/SelectPointsController.cs +++ b/Assets/Scrips/Controllers/SelectPointsController.cs @@ -6,7 +6,6 @@ using UnityEngine.InputSystem; using MathNet.Numerics.LinearAlgebra.Factorization; using MathNet.Numerics.LinearAlgebra; using Unity.Mathematics; -using Unity.VisualScripting; public class SelectPointsController : MonoBehaviour { @@ -15,52 +14,31 @@ public class SelectPointsController : MonoBehaviour public InputActionReference selectPointsEventAction; private InputLoader _inputSelectPoints; + public GameObject spawnPrefab; + public int maxNumberOfPoints = 3000; + private List<GameObject> _blockSelections; private List<Vector3> _debugPoints; private List<Vector3> _recalculatedPoints; + private ProgramController _programController; + private void Awake() { _inputSelectPoints = new(selectPointsEventAction, SelectPointsHandler); _blockSelections = new(); _debugPoints = new(); + _programController = this.GetComponent<ProgramController>(); } private void SelectPointsHandler(InputAction.CallbackContext context) { - // double epsilon = 1E-6; List<Vector3> selectedPoints = new(); Transform cloudTransform = pointClouds[0].transform; - // Mesh pointCloudMesh = pointClouds[0].GetComponent<MeshFilter>().mesh; - // Vector3[] cloudVertices = pointCloudMesh.vertices; - // Vector3[] cloudNormals = pointCloudMesh.normals; - // Vector3 cloudNormal = cloudNormals[0]; - // List<Vector3> normalsPerFace = new() - // { - // cloudNormals[0] * pointCloudMesh.vertices[0].magnitude - // }; for (int i = 0; i < _recalculatedPoints.Count; i++) { - // Vector3 pt = cloudVertices[i]; - // if (Vector3.Distance(cloudNormals[i], cloudNormal) < epsilon) - // { - // normalsPerFace.Add(cloudNormals[i] * pt.magnitude); - // } - // else - // { - // Vector3 normalAverage = normalsPerFace[0]; - // if (normalsPerFace.Count > 1) - // { - // for (int j = 1; j < normalsPerFace.Count; j++) - // { - // normalAverage += normalsPerFace[j]; - // } - - // normalAverage /= normalsPerFace.Count; - // } - foreach (GameObject blockSelection in _blockSelections) { MeshCollider collider = blockSelection.GetComponent<MeshCollider>(); @@ -70,79 +48,40 @@ public class SelectPointsController : MonoBehaviour selectedPoints.Add(ptGlobal); } } - - // cloudNormal = cloudNormals[i]; - // normalsPerFace.Clear(); - // normalsPerFace.Add(cloudNormals[i] * pt.magnitude); - // } - } CalculatePlane(selectedPoints); - // CalculatePlaneByAvg(selectedPoints); - Debug.Log("selection"); - } - - private void CalculatePlaneByAvg(List<Vector3> points) - { - int bucketSize = (int)math.floor(points.Count / 3); - Vector3 avg1 = points[0]; - Vector3 avg2 = points[bucketSize]; - Vector3 avg3 = points[2 * bucketSize]; - - for (int i = 1; i < bucketSize; i++) - { - avg1 += points[i]; - avg2 += points[i + bucketSize]; - avg3 += points[i + 2 * bucketSize]; - } - - avg1 /= bucketSize; - avg2 /= bucketSize; - avg3 /= bucketSize; - - Plane plane = new(avg1, avg2, avg3); - Debug.Log(plane); - - _debugPoints.Clear(); - for (int i = 0; i < 200; i++) - { - Vector3 randomPoint = new(UnityEngine.Random.Range(-8f, 8f), UnityEngine.Random.Range(-8f, 8f), UnityEngine.Random.Range(-8f, 8f)); - _debugPoints.Add(ProjectPointOntoPlane(plane, randomPoint)); - } - } - - private void testSvd() - { - Matrix<float> G = Matrix<float>.Build.Dense(4, 4); - Vector<float> point = Vector<float>.Build.Dense(new float[] { 2.3f, 3.35f, 6.1f, 1 }); - G.SetRow(0, point); - point = Vector<float>.Build.Dense(new float[] { 4.3f, 3.4f, 2.9f, 1 }); - G.SetRow(1, point); - point = Vector<float>.Build.Dense(new float[] { 8.3f, 3.45f, 3.12f, 1 }); - G.SetRow(2, point); - point = Vector<float>.Build.Dense(new float[] { 2.3f, 3.3f, 4.05f, 1 }); - G.SetRow(3, point); - - Svd<float> svd = G.Svd(true); - Matrix<float> vt = svd.VT; - Vector<float> planeEq = vt.Row(3); - Debug.Log(planeEq); } private void CalculatePlane(List<Vector3> points) { - // testSvd(); - if (points.Count < 3) { Debug.Log("not enough points to calculate plane"); return; } + if (points.Count > maxNumberOfPoints) + { + double dropChance = maxNumberOfPoints / (double)points.Count; + System.Random rnd = new(); + List<Vector3> newPoints = new(); + foreach (Vector3 v in points) + { + if (rnd.NextDouble() < dropChance) + { + newPoints.Add(v); + } + + if (newPoints.Count >= maxNumberOfPoints) break; + } + points = newPoints; + } + Matrix<float> G = Matrix<float>.Build.Dense(points.Count, 4); for (int i = 0; i < points.Count; i++) { - Vector3 pt = points[i].normalized; + // Vector3 pt = points[i].normalized; + Vector3 pt = points[i]; Vector<float> point = Vector<float>.Build.Dense(new float[] { pt.x, pt.y, pt.z, 1 }); G.SetRow(i, point); } @@ -167,6 +106,33 @@ public class SelectPointsController : MonoBehaviour Vector3 randomPoint = new(UnityEngine.Random.Range(-8f, 8f), UnityEngine.Random.Range(-8f, 8f), UnityEngine.Random.Range(-8f, 8f)); _debugPoints.Add(ProjectPointOntoPlane(plane, randomPoint)); } + + Vector<float> colAvg = G.ColumnSums(); + colAvg /= G.RowCount; + Vector3 pointAvg = new(colAvg[0], colAvg[1], colAvg[2]); + SpawnPlane(ProjectPointOntoPlane(plane, pointAvg), planeNormal); + } + + public GameObject SpawnPlane(Vector3 pos, Vector3 normal) + { + GameObject spawnedObject = Instantiate(spawnPrefab, pos, Quaternion.identity); + spawnedObject.transform.parent = this.transform; + spawnedObject.transform.LookAt(spawnedObject.transform.position - normal); + + _programController.RegisterQuad(spawnedObject); + return spawnedObject; + } + + public void LoadPlanes(List<Vector3[]> planes) + { + foreach (Vector3[] data in planes) + { + GameObject spawnedObject = SpawnPlane(data[0], data[1]); + Vector3[] vertexData = new Vector3[data.Length - 2]; + Array.Copy(data, 2, vertexData, 0, data.Length - 2); + + spawnedObject.GetComponent<FittedQuad>().SetAnchors(vertexData); + } } private Vector3 ProjectPointOntoPlane(Plane plane, Vector3 point) @@ -193,16 +159,35 @@ public class SelectPointsController : MonoBehaviour public void ClearSelection() { + foreach (GameObject selection in _blockSelections) + { + Destroy(selection); + } _blockSelections.Clear(); } public void RemoveSelection(GameObject selection) { _blockSelections.Remove(selection); + Destroy(selection); } // Start is called before the first frame update void Start() + { + CalculateRealPoints(); + EditState.Instance.RegisterListener(EditChangeHandler); + } + + private void EditChangeHandler() + { + // if (EditState.Instance.ActiveEditState != EditState.EditType.Select) + // { + // ClearSelection(); + // } + } + + private void CalculateRealPoints() { _recalculatedPoints = new(); @@ -216,7 +201,7 @@ public class SelectPointsController : MonoBehaviour { cloudNormals[0] * pointCloudMesh.vertices[0].magnitude }; - for (int i = 1; i < pointCloudMesh.vertices.Length; i++) + for (int i = 1; i < cloudVertices.Length; i++) { Vector3 pt = cloudVertices[i]; float distance = Vector3.Distance(cloudNormals[i], cloudNormal); @@ -246,10 +231,4 @@ public class SelectPointsController : MonoBehaviour } } - - // Update is called once per frame - void Update() - { - - } } diff --git a/Assets/Scrips/Utils/Save.cs b/Assets/Scrips/Utils/Save.cs index 2809367..f91762c 100644 --- a/Assets/Scrips/Utils/Save.cs +++ b/Assets/Scrips/Utils/Save.cs @@ -5,7 +5,12 @@ using UnityEngine; [System.Serializable] public class Save { + // [position, rotation] public Vector3[] UserTransform = new Vector3[2]; + // [position, rotation, vertices...] public List<Vector3[]> Blocks = new(); + // [local position] public List<Vector3[]> BlockAnchors = new(); + // [position, normal, vertices...] + public List<Vector3[]> Quads = new(); } diff --git a/Assets/Settings/Project Configuration/SampleScene.scenetemplate b/Assets/Settings/Project Configuration/SampleScene.scenetemplate index c5491cd..707e8a0 100644 --- a/Assets/Settings/Project Configuration/SampleScene.scenetemplate +++ b/Assets/Settings/Project Configuration/SampleScene.scenetemplate @@ -138,10 +138,12 @@ MonoBehaviour: instantiationMode: 0 - dependency: {fileID: 8300000, guid: d14b106713a74b448bcab90869f1706e, type: 3} instantiationMode: 1 - - dependency: {fileID: 2800000, guid: 976e28fd05dde91429107e5f857f3c89, type: 3} + - dependency: {fileID: 2123888734268900958, guid: acca7dbb0ace2e64c84057ecdceb3e15, type: 3} instantiationMode: 0 - dependency: {fileID: 6275872155353212687, guid: 8b983c20181b75e489cd0b88a44c68f8, type: 3} instantiationMode: 0 + - dependency: {fileID: 2800000, guid: 976e28fd05dde91429107e5f857f3c89, type: 3} + instantiationMode: 0 - dependency: {fileID: 7313654230448209575, guid: 895f6f3c2d334633b5800312285058d2, type: 3} instantiationMode: 0 - dependency: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -288,6 +290,8 @@ MonoBehaviour: instantiationMode: 0 - dependency: {fileID: 4125421792874400280, guid: 27024f5809f4a4347b9cd7f26a1bdf93, type: 3} instantiationMode: 0 + - dependency: {fileID: 2100000, guid: c07dd69158c788946aa2d944960f264d, type: 2} + instantiationMode: 0 - dependency: {fileID: 2800000, guid: a89d91b09ecb0164ab9d892915bfa299, type: 3} instantiationMode: 0 - dependency: {fileID: 2179057468902719980, guid: f47ad6ac315a3ea428b59e2cac6f2a2e, type: 3} @@ -316,6 +320,8 @@ MonoBehaviour: instantiationMode: 0 - dependency: {fileID: 2800000, guid: 65d31ca9600c4654e886aa7bab36e94b, type: 3} instantiationMode: 0 + - dependency: {fileID: 8138111287210361984, guid: 5d21b49507ba4104f983122e372d6595, type: 3} + instantiationMode: 0 - dependency: {fileID: 2100000, guid: f5cd77343d6ca1949b1d2d7511848832, type: 2} instantiationMode: 0 - dependency: {fileID: 2100000, guid: 456e2158124c0aa40bf9eceb850dfdb4, type: 2} @@ -326,10 +332,12 @@ MonoBehaviour: instantiationMode: 0 - dependency: {fileID: 2100000, guid: 08d0ccc4a501e6645be0c3ee36d0cd20, type: 2} instantiationMode: 0 - - dependency: {fileID: 2800000, guid: 9d65b1540bd55dc4ab02643e09524306, type: 3} + - dependency: {fileID: 2800000, guid: 1f7e5f686df183d4ca1c96949b4e83c1, type: 3} instantiationMode: 0 - dependency: {fileID: 8134302614855669005, guid: c4a645c929982ea41a52b5037ee7d94d, type: 3} instantiationMode: 0 + - dependency: {fileID: 2800000, guid: 9d65b1540bd55dc4ab02643e09524306, type: 3} + instantiationMode: 0 - dependency: {fileID: 2800000, guid: de0113b98aad70a419960e61a7d8d6ef, type: 3} instantiationMode: 0 - dependency: {fileID: 2800000, guid: 89c4d70ec8a71624f9f1ea880312974b, type: 3} diff --git a/Assets/VRTemplateAssets/Prefabs/UI/List Item Button.prefab b/Assets/VRTemplateAssets/Prefabs/UI/List Item Button.prefab index 8bd1f69..8b27e6c 100644 --- a/Assets/VRTemplateAssets/Prefabs/UI/List Item Button.prefab +++ b/Assets/VRTemplateAssets/Prefabs/UI/List Item Button.prefab @@ -31,7 +31,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5251477148904607974} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -69,8 +68,7 @@ MonoBehaviour: m_text: Text Button m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: fbb7c6a04be6d8341934b839f24b42e1, type: 2} - m_sharedMaterial: {fileID: 4687939059374929122, guid: fbb7c6a04be6d8341934b839f24b42e1, - type: 2} + m_sharedMaterial: {fileID: 4687939059374929122, guid: fbb7c6a04be6d8341934b839f24b42e1, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] @@ -168,7 +166,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5251477148904607974} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -258,7 +255,6 @@ RectTransform: - {fileID: 2397425259952709509} - {fileID: 1248386867110803025} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -304,7 +300,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2397425259038431700} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0.3333, y: 0.5} @@ -342,8 +337,7 @@ MonoBehaviour: m_text: Button m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: f675742eaf9c20a4f909d78ee7a14fed, type: 2} - m_sharedMaterial: {fileID: 4687939059374929122, guid: f675742eaf9c20a4f909d78ee7a14fed, - type: 2} + m_sharedMaterial: {fileID: 4687939059374929122, guid: f675742eaf9c20a4f909d78ee7a14fed, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] @@ -446,7 +440,6 @@ RectTransform: - {fileID: 6239908032003856518} - {fileID: 5251477148904607974} m_Father: {fileID: 2397425259038431700} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.333, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} @@ -482,10 +475,10 @@ MonoBehaviour: m_SelectOnRight: {fileID: 0} m_Transition: 1 m_Colors: - m_NormalColor: {r: 0.18039216, g: 0.18039216, b: 0.18039216, a: 1} - m_HighlightedColor: {r: 0.13333334, g: 0.13333334, b: 0.13333334, a: 1} - m_PressedColor: {r: 0.38431373, g: 0.38431373, b: 0.38431373, a: 1} - m_SelectedColor: {r: 0.1254902, g: 0.5882353, b: 0.9529412, a: 1} + m_NormalColor: {r: 0.13330276, g: 0.09607513, b: 0.16037738, a: 1} + m_HighlightedColor: {r: 0.101517335, g: 0.06167676, b: 0.13207549, a: 1} + m_PressedColor: {r: 0.4995645, g: 0.33641866, b: 0.5283019, a: 1} + m_SelectedColor: {r: 0.595938, g: 0.368325, b: 0.8396226, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 @@ -623,8 +616,7 @@ MonoBehaviour: m_MethodName: PlayOneShot m_Mode: 2 m_Arguments: - m_ObjectArgument: {fileID: 8300000, guid: b319a2e4ff8f5d840b82d8635b645d22, - type: 3} + m_ObjectArgument: {fileID: 8300000, guid: b319a2e4ff8f5d840b82d8635b645d22, type: 3} m_ObjectArgumentAssemblyTypeName: UnityEngine.AudioClip, UnityEngine m_IntArgument: 0 m_FloatArgument: 0 @@ -640,8 +632,7 @@ MonoBehaviour: m_MethodName: PlayOneShot m_Mode: 2 m_Arguments: - m_ObjectArgument: {fileID: 8300000, guid: d14b106713a74b448bcab90869f1706e, - type: 3} + m_ObjectArgument: {fileID: 8300000, guid: d14b106713a74b448bcab90869f1706e, type: 3} m_ObjectArgumentAssemblyTypeName: UnityEngine.AudioClip, UnityEngine m_IntArgument: 0 m_FloatArgument: 0 @@ -725,7 +716,6 @@ RectTransform: - {fileID: 3052109201295664413} - {fileID: 4505963342823614472} m_Father: {fileID: 1248386867110803025} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -814,7 +804,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1248386867110803025} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} diff --git a/Assets/VRTemplateAssets/Prefabs/UI/Spatial Panel Scroll.prefab b/Assets/VRTemplateAssets/Prefabs/UI/Spatial Panel Scroll.prefab index 2709113..f872697 100644 --- a/Assets/VRTemplateAssets/Prefabs/UI/Spatial Panel Scroll.prefab +++ b/Assets/VRTemplateAssets/Prefabs/UI/Spatial Panel Scroll.prefab @@ -112,7 +112,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0, g: 0.6, b: 1, a: 1} + m_Color: {r: 0.589921, g: 0, b: 1, a: 1} m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -678,7 +678,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.9019608} + m_Color: {r: 0.038697746, g: 0.017132428, b: 0.066037714, a: 0.9019608} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -911,8 +911,8 @@ MonoBehaviour: m_TargetGraphic: {fileID: 6065537971879471885} m_HandleRect: {fileID: 6233600418098557749} m_Direction: 0 - m_Value: 1 - m_Size: 0.99999994 + m_Value: 0 + m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -1007,7 +1007,7 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 + m_PresetInfoIsWorld: 0 --- !u!114 &3181781652842806179 MonoBehaviour: m_ObjectHideFlags: 0 -- GitLab