Skip to content
Snippets Groups Projects
Commit 54a2a7f7 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

epsilon reduced due to inaccurracy of line intersection algorithm

parent 7f4ccd07
No related branches found
No related tags found
3 merge requests!630WIP: Resolve "The privileges of a new user are not saved in some cases",!442Problem with exporting to celldesigner and parsing from celldesigner,!440Problem with exporting to celldesigner
......@@ -373,21 +373,22 @@ public abstract class AbstractCellDesignerAliasConverter<T extends Element> impl
Point2D pointOnBorder = lineTransformation.getIntersectionWithPathIterator(line,
path.getPathIterator(new AffineTransform()));
if (Math.abs(pointOnBorder.getX() - element.getX() - element.getWidth()) < Configuration.EPSILON && //
pointOnBorder.getY() - element.getY() - element.getHeight() / 2 < Configuration.EPSILON) {
double epsilon = 0.001;
if (Math.abs(pointOnBorder.getX() - element.getX() - element.getWidth()) < epsilon && //
pointOnBorder.getY() - element.getY() - element.getHeight() / 2 < epsilon) {
double ratio = 1 - (pointOnBorder.getY() - element.getY()) / element.getHeight();
result = (ratio - 0.5) * (PI / 2);
} else if (Math.abs(pointOnBorder.getY() - element.getY()) < Configuration.EPSILON) {
} else if (Math.abs(pointOnBorder.getY() - element.getY()) < epsilon) {
double ratio = 1 - (pointOnBorder.getX() - element.getX()) / element.getWidth();
result = ratio * (PI / 2) + RIGHT_TOP_RESIDUE_MAX_ANGLE;
} else if (Math.abs(pointOnBorder.getX() - element.getX()) < Configuration.EPSILON) {
} else if (Math.abs(pointOnBorder.getX() - element.getX()) < epsilon) {
double ratio = (pointOnBorder.getY() - element.getY()) / element.getHeight();
result = ratio * (PI / 2) + TOP_RESIDUE_MAX_ANGLE;
} else if (Math.abs(pointOnBorder.getY() - element.getY() - element.getHeight()) < Configuration.EPSILON) {
} else if (Math.abs(pointOnBorder.getY() - element.getY() - element.getHeight()) < epsilon) {
double ratio = (pointOnBorder.getX() - element.getX()) / element.getWidth();
result = ratio * (PI / 2) + LEFT_RESIDUE_MAX_ANGLE;
} else if (Math.abs(pointOnBorder.getX() - element.getX() - element.getWidth()) < Configuration.EPSILON && //
pointOnBorder.getY() - element.getY() - element.getHeight() < Configuration.EPSILON) {
} else if (Math.abs(pointOnBorder.getX() - element.getX() - element.getWidth()) < epsilon && //
pointOnBorder.getY() - element.getY() - element.getHeight() < epsilon) {
double ratio = 1 - (pointOnBorder.getY() - element.getY()) / element.getHeight();
result = ratio * (PI / 2) + BOTTOM_RESIDUE_MAX_ANGLE;
} else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment