class BotCollisionObject implements ICollisionObject {

	@Override
	public Optional<ICollision> getInsideCollision(final IVector3 prePos)
	{
		if (isInFront(prePos))
		{
			double margin = lineCollision.isSticky() && lineCollision.getImpulse(prePos).getXYVector().isZeroVector() ? 10
					: 0;
			if (frontTriangle.isPointInShape(prePos.getXYVector(), margin))
			{
				IVector2 normal = Vector2.fromAngle(pose.getOrientation());
				IVector2 colPos;
				colPos = frontLine.leadPointOf(prePos.getXYVector());
				return Optional.of(new Collision(colPos, normal, lineCollision));
			}
			return Optional.empty();
		}
		return circleCollisionObject.getInsideCollision(prePos);
	}

	public  BotCollisionObject(final Pose pose, final IVector3 vel, final double center2DribblerDist, final BotID botID);
	public  BotCollisionObject(final Pose pose, final IVector3 vel, final double center2DribblerDist, final BotID botID,
			final boolean sticky,
			final double kickSpeed, final boolean chip);

}