490 */ 491 @Override 492 public void interpolate(double frac) { 493 if (!Double.isNaN(startX)) { 494 cachedNode.setScaleX(startX + frac * deltaX); 495 } 496 if (!Double.isNaN(startY)) { 497 cachedNode.setScaleY(startY + frac * deltaY); 498 } 499 if (!Double.isNaN(startZ)) { 500 cachedNode.setScaleZ(startZ + frac * deltaZ); 501 } 502 } 503 504 private Node getTargetNode() { 505 final Node node = getNode(); 506 return (node != null) ? node : getParentTargetNode(); 507 } 508 509 @Override 510 boolean impl_startable(boolean forceSync) { 511 return super.impl_startable(forceSync) 512 && ((getTargetNode() != null) || (!forceSync && (cachedNode != null))); 513 } 514 515 @Override 516 void impl_sync(boolean forceSync) { 517 super.impl_sync(forceSync); 518 if (forceSync || (cachedNode == null)) { 519 cachedNode = getTargetNode(); 520 521 final double _fromX = getFromX(); 522 final double _fromY = getFromY(); 523 final double _fromZ = getFromZ(); 524 525 final double _toX = getToX(); 526 final double _toY = getToY(); 527 final double _toZ = getToZ(); 528 529 final double _byX = getByX(); 530 final double _byY = getByY(); 531 final double _byZ = getByZ(); 532 533 if (Double.isNaN(_fromX) && Double.isNaN(_toX) && (Math.abs(_byX) < EPSILON)) { 534 startX = Double.NaN; 535 } else { 536 startX = (!Double.isNaN(_fromX)) ? _fromX : cachedNode.getScaleX(); 537 deltaX = (!Double.isNaN(_toX)) ? _toX - startX : getByX(); | 490 */ 491 @Override 492 public void interpolate(double frac) { 493 if (!Double.isNaN(startX)) { 494 cachedNode.setScaleX(startX + frac * deltaX); 495 } 496 if (!Double.isNaN(startY)) { 497 cachedNode.setScaleY(startY + frac * deltaY); 498 } 499 if (!Double.isNaN(startZ)) { 500 cachedNode.setScaleZ(startZ + frac * deltaZ); 501 } 502 } 503 504 private Node getTargetNode() { 505 final Node node = getNode(); 506 return (node != null) ? node : getParentTargetNode(); 507 } 508 509 @Override 510 boolean startable(boolean forceSync) { 511 return super.startable(forceSync) 512 && ((getTargetNode() != null) || (!forceSync && (cachedNode != null))); 513 } 514 515 @Override 516 void sync(boolean forceSync) { 517 super.sync(forceSync); 518 if (forceSync || (cachedNode == null)) { 519 cachedNode = getTargetNode(); 520 521 final double _fromX = getFromX(); 522 final double _fromY = getFromY(); 523 final double _fromZ = getFromZ(); 524 525 final double _toX = getToX(); 526 final double _toY = getToY(); 527 final double _toZ = getToZ(); 528 529 final double _byX = getByX(); 530 final double _byY = getByY(); 531 final double _byZ = getByZ(); 532 533 if (Double.isNaN(_fromX) && Double.isNaN(_toX) && (Math.abs(_byX) < EPSILON)) { 534 startX = Double.NaN; 535 } else { 536 startX = (!Double.isNaN(_fromX)) ? _fromX : cachedNode.getScaleX(); 537 deltaX = (!Double.isNaN(_toX)) ? _toX - startX : getByX(); |