unfunc cam client. fix boxes, tabs, fdm support lerp
This commit is contained in:
parent
5c0fbbcba6
commit
eff943f0d6
5 changed files with 463 additions and 440 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -8,9 +8,10 @@ import { tip2tipEmit } from '../../geo/paths.js';
|
|||
|
||||
function createFilter(op) {
|
||||
let filter = slices => slices;
|
||||
if (op.filter) {
|
||||
let filterString = op.filter?.map(l => l.trim()).join('\n');
|
||||
if (filterString) {
|
||||
try {
|
||||
const obj = eval(`( ${op.filter.join('\n')} )`);
|
||||
const obj = eval(`( ${filterString} )`);
|
||||
let idx = 0;
|
||||
if (obj && obj.slices) {
|
||||
const nadd = [];
|
||||
|
|
|
|||
|
|
@ -667,7 +667,7 @@ function contourPolys(widget, polys) {
|
|||
raycaster.ray.origin.set(point.x, point.y, 10000);
|
||||
const intersects = raycaster.intersectObject(widget.mesh, false);
|
||||
const firstHit = intersects[0] || null;
|
||||
point.z = firstHit.point.z;
|
||||
if (firstHit) point.z = firstHit.point.z;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@
|
|||
import { $ } from '../../moto/webui.js';
|
||||
import { api } from '../../kiri/api.js';
|
||||
import { conf } from '../../kiri/conf.js';
|
||||
import { util } from '../../geo/base.js';
|
||||
import { client } from '../../kiri/client.js';
|
||||
import { addbox, delbox } from '../../kiri/boxes.js';
|
||||
import { addbox, delbox, getlastbox } from '../../kiri/boxes.js';
|
||||
import { Layers } from '../../kiri/layers.js';
|
||||
import { Stack } from '../../kiri/stack.js';
|
||||
import { Widget, newWidget } from '../../kiri/widget.js';
|
||||
|
|
@ -371,6 +372,7 @@ export function init() {
|
|||
removeWidgetSupport(lastPillar.widget, lastPillar);
|
||||
return;
|
||||
}
|
||||
lastBox = getlastbox();
|
||||
if (!(iw && lastBox)) return;
|
||||
let { point, dim } = lastBox;
|
||||
p1.y = Math.max(0, p1.y);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,14 @@
|
|||
const { BoxGeometry, Matrix4, MeshPhongMaterial, Quaternion, Vector3 } = THREE;
|
||||
import { space } from '../moto/space.js';
|
||||
|
||||
const { BoxGeometry, Matrix4, MeshPhongMaterial, Quaternion, Vector3, Mesh } = THREE;
|
||||
const boxes = [];
|
||||
|
||||
let lastBox;
|
||||
|
||||
export function getlastbox() {
|
||||
return lastBox;
|
||||
}
|
||||
|
||||
export function delbox(name) {
|
||||
const old = boxes[name];
|
||||
if (old) {
|
||||
|
|
@ -26,7 +34,7 @@ export function addbox(point, color, name, dim = {x:1,y:1,z:1,rz:0}, opt = {}) {
|
|||
|
||||
lastBox = { point, dim };
|
||||
|
||||
const group = opt.group || space.scene
|
||||
const group = opt.group || space.scene;
|
||||
group.add(box);
|
||||
box.groupTo = group;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue