code: public void bezierTo(Point2D controlPoint1, Point2D controlPoint2,
  			Point2D endPoint) {
  		_beforeNewSegment(1);
  		setXY(m_pointCount - 1, endPoint);
  		double z;
  		_initSegmentData(6);
  		m_pathFlags.setBits(m_pathFlags.size() - 1,
  				(byte) PathFlags.enumHasNonlinearSegments);
  		m_segmentParamIndex.write(m_pointCount - 2, m_curveParamwritePoint);
  		m_curveParamwritePoint += 6;
  		int curveIndex = m_curveParamwritePoint;
  		m_segmentParams.write(curveIndex, controlPoint1.x);
  		m_segmentParams.write(curveIndex + 1, controlPoint1.y);
  		z = 0;// TODO: calculate me.
  		m_segmentParams.write(curveIndex + 2, z);
  		m_segmentParams.write(curveIndex + 3, controlPoint2.x);
  		m_segmentParams.write(curveIndex + 4, controlPoint2.y);
  		z = 0;// TODO: calculate me.
  		m_segmentParams.write(curveIndex + 5, z);
  		_finishBezierTo();
  	}
docs: adds a Cubic Bezier Segment to the current Path. The Bezier Segment
  connects the current last Point and the given endPoint.