void BokehImageOperation::executePixel(float *color, float x, float y, PixelSampler sampler)
{
	float shift = this->m_data->lensshift;
	float shift2 = shift / 2.0f;
	float distance = this->m_circularDistance;
	float insideBokehMax = isInsideBokeh(distance, x, y);
	float insideBokehMed = isInsideBokeh(distance - fabsf(shift2 * distance), x, y);
	float insideBokehMin = isInsideBokeh(distance - fabsf(shift * distance), x, y);
	if (shift < 0) {
		color[0] = insideBokehMax;
		color[1] = insideBokehMed;
		color[2] = insideBokehMin;
	}
	else {
		color[0] = insideBokehMin;
		color[1] = insideBokehMed;
		color[2] = insideBokehMax;
	}
	color[3] = (insideBokehMax + insideBokehMed + insideBokehMin) / 3.0f;
}
void BokehImageOperation::executePixelSampled(float output[4], float x, float y, PixelSampler /*sampler*/)
{
	float shift = this->m_data->lensshift;
	float shift2 = shift / 2.0f;
	float distance = this->m_circularDistance;
	float insideBokehMax = isInsideBokeh(distance, x, y);
	float insideBokehMed = isInsideBokeh(distance - fabsf(shift2 * distance), x, y);
	float insideBokehMin = isInsideBokeh(distance - fabsf(shift * distance), x, y);
	if (shift < 0) {
		output[0] = insideBokehMax;
		output[1] = insideBokehMed;
		output[2] = insideBokehMin;
	}
	else {
		output[0] = insideBokehMin;
		output[1] = insideBokehMed;
		output[2] = insideBokehMax;
	}
	output[3] = (insideBokehMax + insideBokehMed + insideBokehMin) / 3.0f;
}