mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-14 20:33:30 +01:00
48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
import {MObject} from "../model/mobject";
|
|
import {Param} from "../../sketcher/shapes/param";
|
|
import {ISolveStage, SolvableObject} from "../../sketcher/constr/solvableObject";
|
|
import {AlgNumConstraint} from "../../sketcher/constr/ANConstraints";
|
|
import {AssemblyCSysNode} from "./nodes/assemblyCSysNode";
|
|
import {AssemblyOrientationNode} from "./nodes/assemblyOrientationNode";
|
|
import {Constraints3D} from "./constraints3d";
|
|
import {AssemblyLocationNode} from "./nodes/assemblyLocationNode";
|
|
|
|
export abstract class AssemblyNode implements SolvableObject {
|
|
|
|
constraints: Set<AlgNumConstraint> = new Set();
|
|
|
|
model: MObject;
|
|
|
|
stage: ISolveStage;
|
|
|
|
id: string;
|
|
|
|
protected constructor(model: MObject) {
|
|
this.model = model;
|
|
this.id = 'assembly-node:' + model.id;
|
|
}
|
|
|
|
abstract visitParams(cb);
|
|
|
|
abstract reset();
|
|
|
|
createConsistencyConstraints(): AlgNumConstraint[] {
|
|
return [];
|
|
}
|
|
|
|
createOrientationRelationship(location: AssemblyLocationNode): AlgNumConstraint[] {
|
|
return [];
|
|
}
|
|
|
|
createTranslationRelationship(location: AssemblyLocationNode): AlgNumConstraint[] {
|
|
return [];
|
|
}
|
|
|
|
get params(): Param[] {
|
|
const paramArray = [];
|
|
this.visitParams(p => paramArray.push(p));
|
|
return paramArray;
|
|
}
|
|
|
|
}
|
|
|