package com.baselet.element.sequence_aio.facet;
import com.baselet.control.basics.Line1D;
import com.baselet.control.basics.geom.PointDouble;
import com.baselet.diagram.draw.DrawHandler;
public interface LifelineOccurrence {
/**
* @param drawHandler
* @param topLeft the top left corner of the rectangle in which the occurrence can draw
* @param size of the rectangle in which the occurrence can draw.
* @return if the lifeline is not interrupted then null, otherwise the Point contains the y start and y end of the interrupted area
*/
public Line1D draw(DrawHandler drawHandler, PointDouble topLeft, PointDouble size);
/**
* @param drawHandler
* @return the minimum width which is needed by this element
*/
public double getMinWidth(DrawHandler drawHandler);
/**
* @param drawHandler
* @param size of the rectangle in which the occurrence can draw.
* @return the amount of additional y space needed to draw the LifelineOccurence
* (e.g. a long constraint which is wrapped into multiple lines).
* If the return value is <= 0 then the value is ignored.
*/
public double getAdditionalYHeight(DrawHandler drawHandler, PointDouble size);
}