🚀 Auto-deploy: melhoria no snap e medição AR em 24/05/2026 13:56:57
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { useEffect, useRef, useMemo, useState, useCallback } from 'react';
|
import { useEffect, useRef, useMemo, useState, useCallback } from 'react';
|
||||||
import { useFrame, useThree } from '@react-three/fiber';
|
import { useFrame, useThree } from '@react-three/fiber';
|
||||||
import { Grid, Billboard, Sky } from '@react-three/drei';
|
import { Grid, Billboard, Sky, Line } from '@react-three/drei';
|
||||||
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
||||||
import * as THREE from 'three';
|
import * as THREE from 'three';
|
||||||
import { useModelStore, type SceneModel } from '@/stores/useModelStore';
|
import { useModelStore, type SceneModel } from '@/stores/useModelStore';
|
||||||
@@ -325,19 +325,8 @@ function XRMeasurementText({ text, color }: { text: string; color: string }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function XRSafeLine({ a, b }: { a: [number, number, number]; b: [number, number, number] }) {
|
export function XRSafeLine({ a, b }: { a: [number, number, number]; b: [number, number, number] }) {
|
||||||
const points = useMemo(() => [
|
|
||||||
new THREE.Vector3(a[0], a[1], a[2]),
|
|
||||||
new THREE.Vector3(b[0], b[1], b[2])
|
|
||||||
], [a, b]);
|
|
||||||
|
|
||||||
const geometry = useMemo(() => {
|
|
||||||
return new THREE.BufferGeometry().setFromPoints(points);
|
|
||||||
}, [points]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<line geometry={geometry}>
|
<Line points={[a, b]} color="#22c55e" lineWidth={2} />
|
||||||
<lineBasicMaterial color="#22c55e" linewidth={2} />
|
|
||||||
</line>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user