fill->radial.cx = tx;
fill->radial.cy = ty;
- auto sx = sqrt(pow(transform->e11, 2) + pow(transform->e21, 2));
- auto sy = sqrt(pow(transform->e12, 2) + pow(transform->e22, 2));
+ auto sx = sqrtf(powf(transform->e11, 2.0f) + powf(transform->e21, 2.0f));
+ auto sy = sqrtf(powf(transform->e12, 2.0f) + powf(transform->e22, 2.0f));
//FIXME; Scale + Rotation is not working properly
radius *= sx;
- if (abs(sx - sy) > DBL_EPSILON) {
+ if (fabsf(sx - sy) > FLT_EPSILON) {
fill->sx = sx;
fill->sy = sy;
}
auto detDelta2 = 2.0f * inva;
for (uint32_t i = 0 ; i < len ; ++i) {
- *dst = _pixel(fill, sqrt(det));
+ *dst = _pixel(fill, sqrtf(det));
++dst;
det += detDelta;
detDelta += detDelta2;
if (transform) {
if (!_inverse(transform, &invTransform)) return false;
- scaling = sqrt((transform->e11 * transform->e11) + (transform->e21 * transform->e21));
- auto scalingY = sqrt((transform->e22 * transform->e22) + (transform->e12 * transform->e12));
+ scaling = sqrtf((transform->e11 * transform->e11) + (transform->e21 * transform->e21));
+ auto scalingY = sqrtf((transform->e22 * transform->e22) + (transform->e12 * transform->e12));
//TODO:If the x and y axis scaling is different, a separate algorithm for each axis should be applied.
if (scaling != scalingY) scaling = 1.0f;
}
void strokeReset(SwStroke* stroke, const Shape* sdata, const Matrix* transform)
{
if (transform) {
- stroke->sx = sqrt(pow(transform->e11, 2) + pow(transform->e21, 2));
- stroke->sy = sqrt(pow(transform->e12, 2) + pow(transform->e22, 2));
+ stroke->sx = sqrtf(powf(transform->e11, 2.0f) + powf(transform->e21, 2.0f));
+ stroke->sy = sqrtf(powf(transform->e12, 2.0f) + powf(transform->e22, 2.0f));
} else {
stroke->sx = stroke->sy = 1.0f;
}
*/
if (type == SvgParserLengthType::Vertical) max = svgParse->global.h;
else if (type == SvgParserLengthType::Horizontal) max = svgParse->global.w;
- else if (type == SvgParserLengthType::Other) max = sqrt(pow(svgParse->global.h, 2) + pow(svgParse->global.w, 2)) / sqrt(2.0);
+ else if (type == SvgParserLengthType::Other) max = sqrtf(pow(svgParse->global.h, 2) + pow(svgParse->global.w, 2)) / sqrtf(2.0);
if (strstr(str, "%")) parsedValue = parsedValue / 100.0;
else if (strstr(str, "cm")) parsedValue = parsedValue * 35.43307;
++end;
//Refers to the diagonal length of the viewport.
//https://www.w3.org/TR/SVG2/coords.html#Units
- parsedValue = (sqrt(pow(loader->svgParse->global.w, 2) + pow(loader->svgParse->global.h, 2)) / sqrt(2.0f)) * (parsedValue / 100.0f);
+ parsedValue = (sqrtf(pow(loader->svgParse->global.w, 2) + pow(loader->svgParse->global.h, 2)) / sqrtf(2.0f)) * (parsedValue / 100.0f);
}
(*dash).array.push(parsedValue);
str = end;
static void _recalcRadialRAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool userSpace)
{
- if (!userSpace) radial->r = radial->r * (sqrt(pow(loader->svgParse->global.h, 2) + pow(loader->svgParse->global.w, 2)) / sqrt(2.0));
+ if (!userSpace) radial->r = radial->r * (sqrtf(pow(loader->svgParse->global.h, 2) + pow(loader->svgParse->global.w, 2)) / sqrtf(2.0));
}
grad->radial->cy = 0.5f / loader->svgParse->global.h;
grad->radial->fx = 0.5f / loader->svgParse->global.w;
grad->radial->fy = 0.5f / loader->svgParse->global.h;
- grad->radial->r = 0.5f / (sqrt(pow(loader->svgParse->global.h, 2) + pow(loader->svgParse->global.w, 2)) / sqrt(2.0f));
+ grad->radial->r = 0.5f / (sqrtf(pow(loader->svgParse->global.h, 2) + pow(loader->svgParse->global.w, 2)) / sqrtf(2.0f));
loader->svgParse->gradient.parsedFx = false;
loader->svgParse->gradient.parsedFy = false;
int radius;
auto fillGrad = RadialGradient::gen();
- radius = static_cast<int>(sqrtf(pow(rw, 2) + pow(rh, 2)) / sqrtf(2.0));
+ radius = static_cast<int>(sqrtf(powf(rw, 2.0f) + powf(rh, 2.0f)) / sqrtf(2.0f));
if (!g->userSpace) {
//That is according to Units in here
//https://www.w3.org/TR/2015/WD-SVG2-20150915/coords.html
int min = static_cast<int>((rh > rw) ? rw : rh);
- radius = static_cast<int>(sqrtf(pow(min, 2) + pow(min, 2)) / sqrtf(2.0));
+ radius = static_cast<int>(sqrt(pow(min, 2) + pow(min, 2)) / sqrtf(2.0f));
}
if (g->usePercentage) {
g->radial->cy = g->radial->cx * g->transform->e21 + g->radial->cy * g->transform->e22 + g->transform->e23;
g->radial->cx = cx;
- auto sx = sqrtf(pow(g->transform->e11, 2) + pow(g->transform->e21, 2));
+ auto sx = sqrtf(powf(g->transform->e11, 2.0f) + powf(g->transform->e21, 2.0f));
g->radial->r *= sx;
}
//width
auto width = shape->strokeWidth();
- if (preTransform) width *= sqrtf(pow(pTransform->e11, 2) + pow(pTransform->e21, 2)); //we know x/y scaling factors are same.
+ if (preTransform) width *= sqrtf(powf(pTransform->e11, 2.0f) + powf(pTransform->e21, 2.0f)); //we know x/y scaling factors are same.
auto cnt = writeTagProperty(TVG_TAG_SHAPE_STROKE_WIDTH, SIZE(width), &width);
//cap