[DEV] commit all with new insland

This commit is contained in:
Edouard DUPIN 2022-03-23 13:37:48 +01:00
parent 5b4ec4ded3
commit a69546fa61
3 changed files with 33 additions and 33 deletions

View File

@ -5,7 +5,7 @@ import java.util.List;
import org.atriasoft.esvg.internal.Log;
import org.atriasoft.etk.Color;
import org.atriasoft.etk.Dimension;
import org.atriasoft.etk.Dimension2f;
import org.atriasoft.etk.Distance;
import org.atriasoft.etk.math.FMath;
import org.atriasoft.etk.math.Matrix2x3f;
@ -24,8 +24,8 @@ import org.atriasoft.exml.model.XmlNode;
public class LinearGradient extends Base {
private final List<Pair<Float, Color>> data = new ArrayList<>(); //!< gradient position x1 y1
private String href = ""; //!< gradient position x2 y2
private Dimension pos1 = new Dimension(new Vector2f(50, 50), Distance.POURCENT);
private Dimension pos2 = new Dimension(new Vector2f(50, 50), Distance.POURCENT);
private Dimension2f pos1 = new Dimension2f(new Vector2f(50, 50), Distance.POURCENT);
private Dimension2f pos2 = new Dimension2f(new Vector2f(50, 50), Distance.POURCENT);
public SpreadMethod spread = SpreadMethod.PAD; //!< in case of using a single gradient in multiple gradient, the gradient is store in an other element...
@ -71,11 +71,11 @@ public class LinearGradient extends Base {
return this.data;
}
public Dimension getPosition1() {
public Dimension2f getPosition1() {
return this.pos1;
}
public Dimension getPosition2() {
public Dimension2f getPosition2() {
return this.pos2;
}
@ -100,12 +100,12 @@ public class LinearGradient extends Base {
String contentX = element.getAttribute("x1", "");
String contentY = element.getAttribute("y1", "");
if (!contentX.isEmpty() && !contentY.isEmpty()) {
this.pos1 = Dimension.valueOf(contentX, contentY);
this.pos1 = Dimension2f.valueOf(contentX, contentY);
}
contentX = element.getAttribute("x2", "");
contentY = element.getAttribute("y2", "");
if (!contentX.isEmpty() && !contentY.isEmpty()) {
this.pos2 = Dimension.valueOf(contentX, contentY);
this.pos2 = Dimension2f.valueOf(contentX, contentY);
}
contentX = element.getAttribute("gradientUnits", "");
if (contentX.equals("userSpaceOnUse")) {
@ -162,7 +162,7 @@ public class LinearGradient extends Base {
stopColor = stopColor.withA(opacity);
Log.verbose(" opacity : '" + content + "' == > " + stopColor);
}
this.data.add(new Pair<Float, Color>(offset, stopColor));
this.data.add(new Pair<>(offset, stopColor));
} else {
Log.error(" node not suported : '" + child.getValue() + "' must be [stop]");
}

View File

@ -5,16 +5,16 @@ import java.util.List;
import org.atriasoft.esvg.internal.Log;
import org.atriasoft.etk.Color;
import org.atriasoft.etk.util.Dynamic;
import org.atriasoft.etk.util.Pair;
import org.atriasoft.exml.model.XmlElement;
import org.atriasoft.exml.model.XmlNode;
import org.atriasoft.etk.Dimension;
import org.atriasoft.etk.Dimension1D;
import org.atriasoft.etk.Dimension1f;
import org.atriasoft.etk.Dimension2f;
import org.atriasoft.etk.Distance;
import org.atriasoft.etk.math.FMath;
import org.atriasoft.etk.math.Matrix2x3f;
import org.atriasoft.etk.math.Vector2f;
import org.atriasoft.etk.util.Dynamic;
import org.atriasoft.etk.util.Pair;
import org.atriasoft.exml.model.XmlElement;
import org.atriasoft.exml.model.XmlNode;
/** @file
* @author Edouard DUPIN
@ -22,11 +22,11 @@ import org.atriasoft.etk.math.Vector2f;
* @license MPL v2.0 (see license file)
*/
public class RadialGradient extends Base {
private Dimension center = new Dimension(new Vector2f(50, 50), Distance.POURCENT); //!< gradient position cx cy
private Dimension2f center = new Dimension2f(new Vector2f(50, 50), Distance.POURCENT); //!< gradient position cx cy
private final List<Pair<Float, Color>> data = new ArrayList<>(); //!< incompatible with href
private Dimension focal = new Dimension(new Vector2f(50, 50), Distance.POURCENT); //!< gradient Focal fx fy
private Dimension2f focal = new Dimension2f(new Vector2f(50, 50), Distance.POURCENT); //!< gradient Focal fx fy
private String href = ""; //!< in case of using a single gradient in multiple gradient, the gradient is store in an other element...
private Dimension1D radius = new Dimension1D(50, Distance.POURCENT); //!< Radius of the gradient
private Dimension1f radius = new Dimension1f(50, Distance.POURCENT); //!< Radius of the gradient
public SpreadMethod spread = SpreadMethod.PAD;
public GradientUnits unit = GradientUnits.GRADIENT_UNITS_OBJECT_BOUNDING_BOX;
@ -47,7 +47,7 @@ public class RadialGradient extends Base {
Log.verbose(spacingDist(level) + "DRAW esvg::RadialGradient");
}
public Dimension getCenter() {
public Dimension2f getCenter() {
return this.center;
}
@ -73,11 +73,11 @@ public class RadialGradient extends Base {
return this.data;
}
public Dimension getFocal() {
public Dimension2f getFocal() {
return this.focal;
}
public Dimension1D getRadius() {
public Dimension1f getRadius() {
return this.radius;
}
@ -101,16 +101,16 @@ public class RadialGradient extends Base {
String contentX = element.getAttribute("cx", "");
String contentY = element.getAttribute("cy", "");
if (!contentX.isEmpty() && !contentY.isEmpty()) {
this.center = Dimension.valueOf(contentX, contentY);
this.center = Dimension2f.valueOf(contentX, contentY);
}
contentX = element.getAttribute("r", "");
if (contentX != "") {
this.radius = Dimension1D.valueOf(contentX);
this.radius = Dimension1f.valueOf(contentX);
}
contentX = element.getAttribute("fx", "");
contentY = element.getAttribute("fy", "");
if (!contentX.isEmpty() && !contentY.isEmpty()) {
this.focal = Dimension.valueOf(contentX, contentY);
this.focal = Dimension2f.valueOf(contentX, contentY);
}
contentX = element.getAttribute("gradientUnits", "");
if (contentX.equals("userSpaceOnUse")) {
@ -167,7 +167,7 @@ public class RadialGradient extends Base {
stopColor = stopColor.withA(opacity);
Log.verbose(" opacity : '" + content + "' == > " + stopColor);
}
this.data.add(new Pair<Float, Color>(offset, stopColor));
this.data.add(new Pair<>(offset, stopColor));
} else {
Log.error("node not suported : '" + child.getValue() + "' must be [stop]");
}

View File

@ -2,21 +2,21 @@ package org.atriasoft.esvg.render;
import java.util.List;
import org.atriasoft.esvg.SpreadMethod;
import org.atriasoft.esvg.Base;
import org.atriasoft.esvg.EsvgDocument;
import org.atriasoft.esvg.GradientUnits;
import org.atriasoft.esvg.LinearGradient;
import org.atriasoft.esvg.RadialGradient;
import org.atriasoft.esvg.SpreadMethod;
import org.atriasoft.esvg.internal.Log;
import org.atriasoft.etk.Color;
import org.atriasoft.etk.Dimension;
import org.atriasoft.etk.Dimension1D;
import org.atriasoft.etk.Dimension1f;
import org.atriasoft.etk.Dimension2f;
import org.atriasoft.etk.Distance;
import org.atriasoft.etk.math.FMath;
import org.atriasoft.etk.math.Matrix2x3f;
import org.atriasoft.etk.math.Vector2f;
import org.atriasoft.etk.math.Vector2i;
import org.atriasoft.etk.math.Matrix2x3f;
import org.atriasoft.etk.util.Pair;
public class DynamicColorSpecial implements DynamicColor {
@ -119,12 +119,12 @@ public class DynamicColorSpecial implements DynamicColor {
Log.verbose(" viewport = {" + this.viewPort.first + "," + this.viewPort.second + "}");
Vector2f size = this.viewPort.second.less(this.viewPort.first);
Dimension dimPos1 = gradient.getPosition1();
Dimension2f dimPos1 = gradient.getPosition1();
this.pos1 = dimPos1.getPixel(size);
if (dimPos1.getType() == Distance.POURCENT) {
this.pos1 = this.pos1.add(this.viewPort.first);
}
Dimension dimPos2 = gradient.getPosition2();
Dimension2f dimPos2 = gradient.getPosition2();
this.pos2 = dimPos2.getPixel(size);
if (dimPos2.getType() == Distance.POURCENT) {
this.pos2 = this.pos2.add(this.viewPort.first);
@ -165,17 +165,17 @@ public class DynamicColorSpecial implements DynamicColor {
Log.verbose(" viewport = {" + this.viewPort.first + "," + this.viewPort.second + "}");
Vector2f size = this.viewPort.second.less(this.viewPort.first);
Dimension dimCenter = gradient.getCenter();
Dimension2f dimCenter = gradient.getCenter();
Vector2f center = dimCenter.getPixel(size);
if (dimCenter.getType() == Distance.POURCENT) {
center = center.add(this.viewPort.first);
}
Dimension dimFocal = gradient.getFocal();
Dimension2f dimFocal = gradient.getFocal();
Vector2f focal = dimFocal.getPixel(size);
if (dimFocal.getType() == Distance.POURCENT) {
focal = focal.add(this.viewPort.first);
}
Dimension1D dimRadius = gradient.getRadius();
Dimension1f dimRadius = gradient.getRadius();
// in the basic vertion of the gradient the color is calculated with the ration in X and Y in the bonding box associated (it is rotate with the object)..
if (center == focal) {
this.centerIsFocal = true;