public Hint addPoint(GraphPoint point, Hint hintFromPreviousCurve) {
    if (_curve != null) {
      _curve.addPoint(point);
    }
    Hint hintForNextCurve = hintFromPreviousCurve;
    if (_symbolFactory != null) {
      Symbol symbol = _symbolFactory.createSymbol(point, _hintForNextPoint,
                                                  hintFromPreviousCurve);
      if (_clippingShape == null || !_softClipping 
          || _clippingShape.isInside(point)) {
        _symbols.addElement(symbol.getSymbol());
      }
      _hintForNextPoint = symbol.getHintForNextPoint();
      hintForNextCurve = symbol.getHintForNextCurve();
    }
    return hintForNextCurve;
  }