/** * Calculate a normal line for a given vertex. * * @param idx * the vertex index * @param pointList * the {@link PointList} in which to search/ * @param scale * The scaling to apply to the line; a scale of 1.0 will lead to * a line that is 2.0 units long (1.0 either side of the vertex). * @return the normal line. */ public Line2d calculateNormalLine(int idx, PointList pointList, float scale) { return calculateNormalLine(pointList.points.get(idx), pointList, scale); }
@Override public void updateModel(FImage image, Point2d point, PointList pointList) { float lineScale = normalLength * pointList.computeIntrinsicScale(); Line2d line = connections.calculateNormalLine(point, pointList, lineScale); model.updateModel(image, line); }
@Override public void updateModel(FImage image, Point2d point, PointList pointList) { float lineScale = normalLength * pointList.computeIntrinsicScale(); Line2d line = connections.calculateNormalLine(point, pointList, lineScale); model.updateModel(image, line); }
@Override public float computeCost(FImage image, Point2d point, PointList pointList) { float lineScale = normalLength * pointList.computeIntrinsicScale(); Line2d line = connections.calculateNormalLine(point, pointList, lineScale); return model.computeCost(image, line); }
@Override public float computeCost(FImage image, Point2d point, PointList pointList) { float lineScale = normalLength * pointList.computeIntrinsicScale(); Line2d line = connections.calculateNormalLine(point, pointList, lineScale); return model.computeCost(image, line); }
@Override public ObjectFloatPair<Point2d> updatePosition(FImage image, Point2d initial, PointList pointList) { float scale = numSearchSamples * normalLength * pointList.computeIntrinsicScale() / (float) numModelSamples; Line2d line = connections.calculateNormalLine(initial, pointList, scale); Point2d newBest = model.computeNewBest(image, line, numSearchSamples); float distance = model.computeMovementDistance(image, line, numSearchSamples, newBest); return new ObjectFloatPair<Point2d>(newBest, distance); } }
@Override public ObjectFloatPair<Point2d> updatePosition(FImage image, Point2d initial, PointList pointList) { float scale = numSearchSamples * normalLength * pointList.computeIntrinsicScale() / (float) numModelSamples; Line2d line = connections.calculateNormalLine(initial, pointList, scale); Point2d newBest = model.computeNewBest(image, line, numSearchSamples); float distance = model.computeMovementDistance(image, line, numSearchSamples, newBest); return new ObjectFloatPair<Point2d>(newBest, distance); } }
final Line2d normal = connections.calculateNormalLine(pt, shape, scale * shapeScale); if (normal != null) frame.drawLine(normal, 1, RGBColour.BLUE);
final Line2d normal = connections.calculateNormalLine(pt, shape, scale * shapeScale); if (normal != null) frame.drawLine(normal, 1, RGBColour.BLUE);
@Override protected void updateNextFrame(FImage frame) { frame.fill(0f); final PointList newShape = pdm.generateNewShape(a.nextValue()); final PointList tfShape = newShape.transform(TransformUtilities.translateMatrix(300, 300).times( TransformUtilities.scaleMatrix(150, 150))); final List<Line2d> lines = connections.getLines(tfShape); frame.drawLines(lines, 1, 1f); for (final Point2d pt : tfShape) { final Line2d normal = connections.calculateNormalLine(pt, tfShape, 10f); if (normal != null) { frame.drawLine(normal, 1, 0.5f); } } } });
@Override protected void updateNextFrame(FImage frame) { frame.fill(0f); final PointList newShape = pdm.generateNewShape(a.nextValue()); final PointList tfShape = newShape.transform(TransformUtilities.translateMatrix(300, 300).times( TransformUtilities.scaleMatrix(150, 150))); final List<Line2d> lines = connections.getLines(tfShape); frame.drawLines(lines, 1, 1f); for (final Point2d pt : tfShape) { final Line2d normal = connections.calculateNormalLine(pt, tfShape, 10f); if (normal != null) { frame.drawLine(normal, 1, 0.5f); } } } });
final Line2d normal = conns.calculateNormalLine(pt, shape, scale * shapeScale); if (normal != null) image.drawLine(normal, 1, RGBColour.BLUE);
final Line2d normal = conns.calculateNormalLine(pt, shape, scale * shapeScale); if (normal != null) image.drawLine(normal, 1, RGBColour.BLUE);