mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-11 10:53:45 +01:00
41 lines
No EOL
1.3 KiB
TypeScript
41 lines
No EOL
1.3 KiB
TypeScript
import Vector from "math/vector";
|
|
import { FaceTouchAlignConstraint } from "../constraints/faceTouchAlign";
|
|
import { Plane } from 'geom/impl/plane';
|
|
import { AssemblyDOF, ModificationResponse } from "./assemblyDOF";
|
|
import { ConflictDOF } from './conflictDOF';
|
|
import {EdgeAlignConstraint} from "../constraints/edgeAlign";
|
|
import {Matrix3x4} from "math/matrix";
|
|
|
|
export class EEEEDOF implements AssemblyDOF {
|
|
|
|
description = 'edge to edge twice';
|
|
origin1: Vector;
|
|
dir1: Vector;
|
|
origin2: Vector;
|
|
dir2: Vector;
|
|
|
|
constructor(origin1: Vector, dir1: Vector, origin2: Vector, dir2: Vector) {
|
|
this.origin1 = origin1;
|
|
this.dir1 = dir1;
|
|
this.origin2 = origin2;
|
|
this.dir2 = dir2;
|
|
}
|
|
|
|
rotate(axis: Vector, angle: number, location: Matrix3x4, strict: boolean): ModificationResponse {
|
|
return ModificationResponse.REJECTED;
|
|
}
|
|
|
|
translate(dir: Vector, location: Matrix3x4, strict: boolean): ModificationResponse {
|
|
return ModificationResponse.REJECTED;
|
|
}
|
|
|
|
|
|
applyTouchAlign(constr: FaceTouchAlignConstraint): AssemblyDOF {
|
|
return new ConflictDOF(constr, 'plane touch/align constraint cannot be applied when object is at ' + this.description + ' relationship');
|
|
}
|
|
|
|
applyEdgeAlign(constr: EdgeAlignConstraint): AssemblyDOF {
|
|
return this;
|
|
}
|
|
|
|
} |