aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/collections/CollectionFreeFormView.tsx
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-02-18 01:45:19 -0500
committerTyler Schicke <tyler_schicke@brown.edu>2019-02-18 01:45:19 -0500
commit4ae8e7791d217a04a913caa75c8e276a50608865 (patch)
tree8ce5a8f882f99f72f1c6c04dfd8e46f1f9cb2a6b /src/client/views/collections/CollectionFreeFormView.tsx
parentbc7a13cb54d3f60b4e9ad301d17db2941eb84912 (diff)
Fixed up a bunch of tranform stuff
Diffstat (limited to 'src/client/views/collections/CollectionFreeFormView.tsx')
-rw-r--r--src/client/views/collections/CollectionFreeFormView.tsx15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/client/views/collections/CollectionFreeFormView.tsx b/src/client/views/collections/CollectionFreeFormView.tsx
index 49864ca6c..f0cf7f0ca 100644
--- a/src/client/views/collections/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/CollectionFreeFormView.tsx
@@ -55,9 +55,7 @@ export class CollectionFreeFormView extends CollectionViewBase {
const xOffset = de.data["xOffset"] as number || 0;
const yOffset = de.data["yOffset"] as number || 0;
//this should be able to use translate and scale methods on an Identity transform, no?
- const transform = new Transform(0, 0, 1 / me.props.DocumentForCollection.GetNumber(KeyStore.Scale, 1)).transform(
- new Transform(-me.props.DocumentForCollection.GetNumber(KeyStore.PanX, 0), -me.props.DocumentForCollection.GetNumber(KeyStore.PanY, 0), 1)
- ).transform(me.props.GetTransform());
+ const transform = me.getTransform();
const screenX = de.x - xOffset;
const screenY = de.y - yOffset;
const [x, y] = transform.transformPoint(screenX, screenY);
@@ -109,7 +107,7 @@ export class CollectionFreeFormView extends CollectionViewBase {
e.stopPropagation();
let x = this.props.DocumentForCollection.GetNumber(KeyStore.PanX, 0);
let y = this.props.DocumentForCollection.GetNumber(KeyStore.PanY, 0);
- let [dx, dy] = this.props.GetTransform().transformDirection(e.clientX - this._lastX, e.clientY - this._lastY);
+ let [dx, dy] = this.props.ScreenToLocalTransform().transformDirection(e.clientX - this._lastX, e.clientY - this._lastY);
this.SetPan(x + dx, y + dy);
}
@@ -131,7 +129,7 @@ export class CollectionFreeFormView extends CollectionViewBase {
let [x, y] = transform.transformPoint(e.clientX, e.clientY);
let localTransform = this.getLocalTransform();
- localTransform.scaleAbout(deltaScale, x, y);
+ localTransform = localTransform.inverse().scaleAbout(deltaScale, x, y)
this.props.DocumentForCollection.SetNumber(KeyStore.Scale, localTransform.Scale);
this.SetPan(localTransform.TranslateX, localTransform.TranslateY);
@@ -213,13 +211,12 @@ export class CollectionFreeFormView extends CollectionViewBase {
}
getTransform = (): Transform => {
- const [x, y] = this.translate;
- return this.getLocalTransform().inverse().translate(-COLLECTION_BORDER_WIDTH, -COLLECTION_BORDER_WIDTH).transform(this.props.GetTransform())
+ return this.props.ScreenToLocalTransform().translate(-COLLECTION_BORDER_WIDTH, -COLLECTION_BORDER_WIDTH).transform(this.getLocalTransform())
}
getLocalTransform = (): Transform => {
const [x, y] = this.translate;
- return Transform.Identity.scale(this.scale).translate(x, y);
+ return Transform.Identity.translate(-x, -y).scale(1 / this.scale);
}
render() {
@@ -249,7 +246,7 @@ export class CollectionFreeFormView extends CollectionViewBase {
return (<CollectionFreeFormDocumentView key={doc.Id} Document={doc}
AddDocument={this.addDocument}
RemoveDocument={this.removeDocument}
- GetTransform={this.getTransform}
+ ScreenToLocalTransform={this.getTransform}
isTopMost={false}
Scaling={1}
ContainingCollectionView={this} DocumentView={this.props.ContainingDocumentView} />);