aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2019-02-12 22:01:19 -0500
committerbobzel <zzzman@gmail.com>2019-02-12 22:01:19 -0500
commit9c25c122a0f2728db8c1bd9b622ce924086105f6 (patch)
treea97a95cea1a9e21d222b913e3816262ec083c423 /src
parent35fcac231e4ab4dda2c47d7a3a7cf038157465eb (diff)
cleaned up TransformToLocalPoint
Diffstat (limited to 'src')
-rw-r--r--src/client/views/collections/CollectionFreeFormView.tsx7
-rw-r--r--src/client/views/nodes/DocumentView.tsx14
2 files changed, 11 insertions, 10 deletions
diff --git a/src/client/views/collections/CollectionFreeFormView.tsx b/src/client/views/collections/CollectionFreeFormView.tsx
index 0262e4a6c..8b9fa8a87 100644
--- a/src/client/views/collections/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/CollectionFreeFormView.tsx
@@ -124,9 +124,10 @@ export class CollectionFreeFormView extends CollectionViewBase {
// if (modes[e.deltaMode] == 'pixels') coefficient = 50;
// else if (modes[e.deltaMode] == 'lines') coefficient = 1000; // This should correspond to line-height??
- let { LocalX, Ss, Xx, LocalY, Yy, ContainerX, ContainerY } = this.props.ContainingDocumentView!.TransformToLocalPoint(e.pageX, e.pageY);
-
- var deltaScale = (1 - (e.deltaY / coefficient)) * Ss;
+ let { LocalX, LocalY, ContainerX, ContainerY } = this.props.ContainingDocumentView!.TransformToLocalPoint(e.pageX, e.pageY);
+ var Xx = this.props.ContainingDocumentView!.LeftCorner();
+ var Yy = this.props.ContainingDocumentView!.TopCorner();
+ var deltaScale = (1 - (e.deltaY / coefficient)) * this.props.ContainingDocumentView!.props.Document.GetNumber(KeyStore.Scale, 1);
var newDeltaScale = this.isAnnotationOverlay ? Math.max(1, deltaScale) : deltaScale;
this.props.DocumentForCollection.SetNumber(KeyStore.Scale, newDeltaScale);
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index 51959841b..bc3017275 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -106,15 +106,15 @@ export class DocumentView extends React.Component<DocumentViewProps> {
return 0;
}
//
- // Converts a coordinate in the screen space of the app into a local document coordinate.
+ // Converts a coordinate in the screen space of the app to a local point in the space of the DocumentView.
+ // This also returns the point in the coordinate space of this document's containing CollectionView
//
public TransformToLocalPoint(screenX: number, screenY: number) {
// if this collection view is nested within another collection view, then
// first transform the screen point into the parent collection's coordinate space.
- let { LocalX: parentX, LocalY: parentY } = this.props.ContainingCollectionView &&
- this.props.ContainingCollectionView.props.ContainingDocumentView ?
- this.props.ContainingCollectionView.props.ContainingDocumentView.TransformToLocalPoint(screenX, screenY) :
- { LocalX: screenX, LocalY: screenY };
+ let containingCollectionViewDoc = this.props.ContainingCollectionView ? this.props.ContainingCollectionView.props.ContainingDocumentView : undefined;
+ let { LocalX: parentX, LocalY: parentY } = !containingCollectionViewDoc ? { LocalX: screenX, LocalY: screenY } :
+ containingCollectionViewDoc.TransformToLocalPoint(screenX, screenY);
let ContainerX: number = parentX - COLLECTION_BORDER_WIDTH;
let ContainerY: number = parentY - COLLECTION_BORDER_WIDTH;
@@ -124,11 +124,11 @@ export class DocumentView extends React.Component<DocumentViewProps> {
let LocalX = (ContainerX - (this.LeftCorner() + Panxx)) / Ss;
let LocalY = (ContainerY - (this.TopCorner() + Panyy)) / Ss;
- return { LocalX, Ss, Xx: this.LeftCorner(), LocalY, Yy: this.TopCorner(), ContainerX, ContainerY };
+ return { LocalX, LocalY, ContainerX, ContainerY };
}
//
- // Converts a point in the coordinate space of a document to a screen space coordinate.
+ // Converts a point in the coordinate space of the document to coordinate in app screen coordinates
//
public TransformToScreenPoint(localX: number, localY: number, Ss: number = 1, Panxx: number = 0, Panyy: number = 0, apply: boolean = true): { ScreenX: number, ScreenY: number } {
var parentScaling = apply ? this.parentScaling : 1;