fix revolve

This commit is contained in:
Val Erastov (xibyte) 2020-06-10 00:24:33 -07:00
parent 66c4707a83
commit 7acd2f7a94
9 changed files with 25 additions and 16 deletions

View file

@ -5,6 +5,7 @@ import CadError from '../../utils/errors';
import {MObject, MObjectIdGenerator} from '../model/mobject';
import {intercept} from "lstream/intercept";
import {CoreContext} from "context";
import {MFace} from "../model/mface";
export function activate(ctx: CoreContext) {
@ -17,6 +18,13 @@ export function activate(ctx: CoreContext) {
const models$ = state<MObject[]>([]);
const update$ = stream<void>();
models$.attach(models => models.forEach(model => model.traverse(m => {
if (m instanceof MFace) {
let sketch = ctx.sketchStorageService.readSketch(m.defaultSketchId);
m.setSketch(sketch);
}
})));
let preRun = null;
function modifyWithPreRun(request, modificationsUpdater, onAccepted, onError) {

View file

@ -27,7 +27,7 @@ export class MDatum extends MObject {
}
}
traverse(callback: (obj: MObject) => {}) {
traverse(callback: (obj: MObject) => void) {
super.traverse(callback);
this.xAxis.traverse(callback);
this.yAxis.traverse(callback);

View file

@ -160,10 +160,10 @@ export class MFace extends MObject {
return this._productionInfo;
}
traverse(callback: (obj: MObject) => {}) {
traverse(callback: (obj: MObject) => void) {
callback(this);
this.sketchObjects.forEach(callback);
this.sketchLoops.forEach(callback);
this.sketchObjects.forEach(i => i.traverse(callback));
this.sketchLoops.forEach(i => i.traverse(callback));
}
}

View file

@ -11,7 +11,7 @@ export abstract class MObject {
this.id = id;
}
traverse(callback: (obj: MObject) => {}) {
traverse(callback: (obj: MObject) => void): void {
callback(this);
}
}

View file

@ -7,22 +7,23 @@ import CSys from '../../math/csys';
export class MShell extends MObject {
static TYPE = 'shell';
csys: CSys;
constructor() {
super(MShell.TYPE, MObjectIdGenerator.next(MShell.TYPE, 'S'))
}
shell;
faces = [];
edges = [];
vertices = [];
traverse(callback: (obj: MObject) => {}) {
constructor() {
super(MShell.TYPE, MObjectIdGenerator.next(MShell.TYPE, 'S'))
}
traverse(callback: (obj: MObject) => void): void {
callback(this);
this.faces.forEach(callback);
this.edges.forEach(callback);
this.vertices.forEach(callback);
this.faces.forEach(i => i.traverse(callback));
this.edges.forEach(i => i.traverse(callback));
this.vertices.forEach(i => i.traverse(callback));
}
}

View file

@ -23,6 +23,7 @@ function createMarker(findEntity, requestRender) {
let mObj = findEntity(entity, id);
if (!mObj) {
console.warn('no entity found to highlight: ' + entity + ' ' + id);
return;
}
marked.set(id, mObj);
mObj.ext.view && mObj.ext.view.mark(color);

View file

@ -2,9 +2,7 @@ import * as SceneGraph from '../../../../modules/scene/sceneGraph';
import {ShellView} from './views/shellView';
import {getAttribute} from '../../../../modules/scene/objectData';
import {MOpenFaceShell} from '../model/mopenFace';
import {EDGE, FACE, SHELL, SKETCH_OBJECT} from './entites';
import {OpenFaceShellView} from './views/openFaceView';
import {findDiff} from '../../../../modules/gems/iterables';
import {MShell} from '../model/mshell';
import {MDatum} from '../model/mdatum';
import DatumView from './views/datumView';
@ -53,5 +51,6 @@ function sceneSynchronizer({services: {cadScene, cadRegistry, viewer, wizard, ac
SceneGraph.addToGroup(cadScene.workGroup, modelView.rootGroup);
}
}
viewer.requestRender();
}
}

View file

@ -15,6 +15,7 @@ export class SketchingView extends View {
this.sketchLoopViews = [];
this.rootGroup = SceneGraph.createGroup();
SceneGraph.addToGroup(this.rootGroup, this.sketchGroup);
this.updateSketch();
}
updateSketch() {

View file

@ -125,7 +125,6 @@ export function activate(ctx) {
services.viewer.requestRender();
}
streams.craft.models.attach(updateAllSketches);
streams.craft.models.attach(() => {
if (inPlaceEditor.inEditMode) {
if (!inPlaceEditor.face.ext.view) {