mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-10 02:13:58 +01:00
Draw basis crosshair for 2d sketches
This commit is contained in:
parent
99a65e417d
commit
318107256d
1 changed files with 65 additions and 1 deletions
|
|
@ -217,6 +217,7 @@ TCAD.TWO.Viewer.prototype.search = function(x, y, buffer, deep, onlyPoints, filt
|
|||
TCAD.TWO.Viewer.prototype._setupServiceLayer = function() {
|
||||
var layer = new TCAD.TWO.Layer("_service", TCAD.TWO.Styles.SERVICE);
|
||||
// layer.objects.push(new TCAD.TWO.CrossHair(0, 0, 20));
|
||||
layer.objects.push(new TCAD.TWO.BasisOrigin(null, this));
|
||||
layer.objects.push(new TCAD.TWO.Point(0, 0, 2));
|
||||
this._serviceLayers.push(layer);
|
||||
|
||||
|
|
@ -719,6 +720,69 @@ TCAD.TWO.CrossHair.prototype.draw = function(ctx, scale) {
|
|||
ctx.restore();
|
||||
};
|
||||
|
||||
/** @constructor */
|
||||
TCAD.TWO.BasisOrigin = function(basis, viewer) {
|
||||
this.viewer = viewer;
|
||||
this.inverseX = false;
|
||||
this.inverseY = false;
|
||||
this.lineWidth = 100;
|
||||
this.xColor = '#FF0000';
|
||||
this.yColor = '#00FF00';
|
||||
};
|
||||
|
||||
TCAD.TWO.BasisOrigin.prototype.draw = function(ctx, scale) {
|
||||
ctx.save();
|
||||
if (this.inverseX) {
|
||||
this.xScale = -1;
|
||||
this.xShift = this.lineWidth + 10;
|
||||
} else {
|
||||
this.xScale = 1;
|
||||
this.xShift = 10;
|
||||
}
|
||||
if (this.inverseY) {
|
||||
this.yScale = -1;
|
||||
this.yShift = this.viewer.canvas.height - this.lineWidth - 10;
|
||||
} else {
|
||||
this.yScale = 1;
|
||||
this.yShift = this.viewer.canvas.height - 10;
|
||||
}
|
||||
|
||||
ctx.setTransform( this.xScale, 0, 0, this.yScale, this.xShift, this.yShift);
|
||||
ctx.beginPath();
|
||||
|
||||
ctx.lineWidth = 1;
|
||||
ctx.strokeStyle = this.yColor;
|
||||
|
||||
var headA = 5;
|
||||
var headB = 10;
|
||||
|
||||
ctx.moveTo(0, 0);
|
||||
ctx.lineTo(0, - this.lineWidth);
|
||||
|
||||
ctx.moveTo(0, - this.lineWidth);
|
||||
ctx.lineTo(headA, 0 - this.lineWidth + headB);
|
||||
|
||||
ctx.moveTo(0, - this.lineWidth);
|
||||
ctx.lineTo(- headA, - this.lineWidth + headB);
|
||||
ctx.closePath();
|
||||
ctx.stroke();
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.strokeStyle = this.xColor;
|
||||
ctx.moveTo(0, 0);
|
||||
ctx.lineTo(this.lineWidth, 0);
|
||||
|
||||
ctx.moveTo(this.lineWidth, 0);
|
||||
ctx.lineTo(this.lineWidth - headB, headA);
|
||||
|
||||
ctx.moveTo(this.lineWidth, 0);
|
||||
ctx.lineTo(this.lineWidth - headB, - headA);
|
||||
ctx.closePath();
|
||||
ctx.stroke();
|
||||
|
||||
ctx.restore();
|
||||
};
|
||||
|
||||
/** @constructor */
|
||||
TCAD.TWO.ToolManager = function(viewer, defaultTool) {
|
||||
this.defaultTool = defaultTool;
|
||||
|
|
@ -757,7 +821,7 @@ TCAD.TWO.ToolManager = function(viewer, defaultTool) {
|
|||
tm.getTool().keydown(e);
|
||||
if (e.keyCode == 27) {
|
||||
tm.releaseControl();
|
||||
} else if (e.keyCode == 46) {
|
||||
} else if (e.keyCode == 46 || e.keyCode == 8) {
|
||||
var selection = viewer.selected.slice();
|
||||
viewer.deselectAll();
|
||||
for (var i = 0; i < selection.length; i++) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue