|
From: <chr...@us...> - 2010-06-02 16:00:27
|
Revision: 5761
http://fudaa.svn.sourceforge.net/fudaa/?rev=5761&view=rev
Author: chrisc83
Date: 2010-06-02 16:00:17 +0000 (Wed, 02 Jun 2010)
Log Message:
-----------
Version de tests!!!
Modified Paths:
--------------
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2010-05-31 22:54:59 UTC (rev 5760)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2010-06-02 16:00:17 UTC (rev 5761)
@@ -728,6 +728,7 @@
final GrBoite _clipReel) {
System.out.println("Start TrIsoLayerDefault.paintDonnees");
long currentTime = System.currentTimeMillis();
+
if (namePalette_ == null) {
updateLegende();
}
@@ -740,7 +741,6 @@
TraceIsoInterface isos = null;
// TrIsoTraceSurface isos = null;
final boolean isElement = getIsoModelAbstract().isCurrentDataElementType();
- System.out.println(isElement);
boolean keepAntialias = false;
TrPostModelInterface modelToUse = getIsoModelAbstract();
if (traceIsoLine_) {
@@ -770,6 +770,15 @@
final int n = modelToUse.getNbElt();
final GrPolygone poly = new GrPolygone();
final GrBoite b = new GrBoite();
+
+ /*******************************************************************************/
+ /** D\xE9claration variables utilis\xE9es par algo optimisation par centre \xE9l\xE9ments **/
+ /*******************************************************************************/
+ GrPoint ptCenter = new GrPoint();
+ final int width = this.getSize().width;
+ int count = 0;
+ CtuluListSelection alreadyExist = new CtuluListSelection();
+
for (i = 0; i < n; i++) {
// le test sur la condition se fait dans le modele
if (!modelToUse.polygone(poly, i, false)) {
@@ -779,6 +788,53 @@
if (!_clipReel.intersectXY(b)) {
continue;
}
+
+ /******************************************************/
+ /** D\xE9but code algo optimisation par centre \xE9l\xE9ments **/
+ /******************************************************/
+ poly.centre(ptCenter);
+// System.out.print("X : " + ptCenter.x_ + ", Y : " + ptCenter.y_);
+ ptCenter.autoApplique(_versEcran);
+// System.out.println(", X : " + ptCenter.x_ + ", Y : " + ptCenter.y_);
+ int idx = (width * ((int)ptCenter.y_)) + ((int)ptCenter.x_);
+// System.out.println("id : " + idx);
+
+ if (alreadyExist.isSelected(idx))
+ {
+ count++;
+ continue;
+ }
+ else
+ {
+ alreadyExist.add(idx);
+
+ //TODO rapide n'est jamais \xE0 true, car si il doit l'\xEAtre on passe dans la m\xE9thode m\xE8re.
+ if (rapide)
+ {
+ int idx2;
+ final int height = this.getSize().height;
+
+ for (int j = ((int)ptCenter.x_) - 1; j < (((int)ptCenter.x_) + 2); j++)
+ {
+ for (int k = ((int)ptCenter.y_) - 1; k < (((int)ptCenter.y_) + 2); k++)
+ {
+ if ((j >= 0) && (j < width) && (k >= 0) && (k < height))
+ {
+ idx2 = (width * k) + j;
+
+ if (idx2 != idx)
+ {
+ alreadyExist.add(idx2);
+ }
+ }
+ }
+ }
+ }
+ }
+ /****************************************************/
+ /** Fin code algo optimisation par centre \xE9l\xE9ments **/
+ /****************************************************/
+
// Trace des isosurfaces / Isolignes (dans la couleur du fond si les isocouleurs sont
// tracees).
if (isElement && !traceIsoLine_) {
@@ -805,6 +861,8 @@
currentTime = System.currentTimeMillis() - currentTime;
System.out.println("Stop TrIsoLayerDefault.paintDonnees");
System.out.println("Dur\xE9e : " + currentTime);
+ System.out.println("isElement : " + isElement);
+ System.out.println("Nb ... : " + n + ", non affich\xE9 : " + count);
}
protected void updateEltAdapter() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-21 09:39:01
|
Revision: 8230
http://fudaa.svn.sourceforge.net/fudaa/?rev=8230&view=rev
Author: deniger
Date: 2013-01-21 09:38:55 +0000 (Mon, 21 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2013-01-21 09:38:40 UTC (rev 8229)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2013-01-21 09:38:55 UTC (rev 8230)
@@ -961,20 +961,55 @@
}
}
} else if (isLineAllPaintedByNode(minX, maxX, minY, maxY, x, y, nbPt)) {
- for (int iPt = 0; iPt < nbPt; iPt++) {
- int idxDone = x[iPt] + y[iPt] * w;
- if (idxDone >= 0 && !memory.isSelected(idxDone)) {
- memory.add(idxDone);
- double value = modelToUse.getDatatFor(idxElt, iPt);
+ boolean painted = false;
+ if (deltaX == 0 || deltaY == 0) {
+ double valueToUse = modelToUse.getDatatFor(idxElt, 0);
+ boolean constant = true;
+ //pour les points sur 2 pixels on ne fait pas le tests pour savoir si meme valeur.
+ if (deltaX >= 1 || deltaY >= 1) {
+ for (int iPt = 1; iPt < nbPt; iPt++) {
+ double val = modelToUse.getDatatFor(idxElt, iPt);
+ if (constant) {
+ constant = CtuluLib.isEquals(val, valueToUse, 1e-10);
+ if (!constant) {
+ break;
+ }
+ }
+ }
+ }
+ if (constant) {
+ painted = true;
final Color color = paletteCouleur_ == null ? null : ((BPalettePlage) paletteCouleur_).getColorFor(
- value);
+ valueToUse);
final Color c = rapide ? color : EbliLib.getAlphaColor(color, alpha_);
if (c != null) {
_g.setColor(c);
- _g.drawLine(x[iPt], y[iPt], x[iPt], y[iPt]);
+ _g.drawLine(minX, minY, maxX, maxY);
}
+ for (int iPt = 0; iPt < nbPt; iPt++) {
+ int idxDone = x[iPt] + y[iPt] * w;
+ if (idxDone >= 0) {
+ memory.add(idxDone);
+ }
+ }
}
+ }
+ if (!painted) {
+ for (int iPt = 0; iPt < nbPt; iPt++) {
+ int idxDone = x[iPt] + y[iPt] * w;
+ if (idxDone >= 0 && !memory.isSelected(idxDone)) {
+ memory.add(idxDone);
+ double value = modelToUse.getDatatFor(idxElt, iPt);
+ final Color color = paletteCouleur_ == null ? null : ((BPalettePlage) paletteCouleur_).getColorFor(
+ value);
+ final Color c = rapide ? color : EbliLib.getAlphaColor(color, alpha_);
+ if (c != null) {
+ _g.setColor(c);
+ _g.drawLine(x[iPt], y[iPt], x[iPt], y[iPt]);
+ }
+ }
+ }
}
} else {
v_ = modelToUse.fillWithData(idxElt, v_);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-21 20:13:20
|
Revision: 8235
http://fudaa.svn.sourceforge.net/fudaa/?rev=8235&view=rev
Author: deniger
Date: 2013-01-21 20:13:14 +0000 (Mon, 21 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2013-01-21 16:16:40 UTC (rev 8234)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2013-01-21 20:13:14 UTC (rev 8235)
@@ -881,8 +881,10 @@
} else if (!isElement) {
isos = new TraceIsoSurfacesAvecPlages(paletteCouleur_, alpha_);
}
- isos.setRapide(isRapide());
- isos.setClipEcran(_clipReel.applique(_versEcran));
+ if (isos != null) {
+ isos.setRapide(isRapide());
+ isos.setClipEcran(_clipReel.applique(_versEcran));
+ }
// pour les surfaces, on voudrait eviter d'utiliser l'anticrenelage
final RenderingHints renderingHints = _g.getRenderingHints();
@@ -896,7 +898,9 @@
GrPoint pt = new GrPoint();
int w = getWidth() + 1;
CtuluListSelection memory = new CtuluListSelection(w * getHeight());
- isos.setDimension(getWidth(), getHeight(), selection_);
+ if (isos != null) {
+ isos.setDimension(getWidth(), getHeight(), selection_);
+ }
Envelope envReel = _clipReel.getEnv();
for (idxElt = 0; idxElt < n; idxElt++) {
if (!modelToUse.isPainted(idxElt)) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <de...@us...> - 2013-01-22 17:00:41
|
Revision: 8243
http://fudaa.svn.sourceforge.net/fudaa/?rev=8243&view=rev
Author: deniger
Date: 2013-01-22 17:00:30 +0000 (Tue, 22 Jan 2013)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
Modified: trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java
===================================================================
--- trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2013-01-22 16:59:58 UTC (rev 8242)
+++ trunk/soft/fudaa-prepro/ui/src/main/java/org/fudaa/fudaa/tr/post/TrIsoLayerDefault.java 2013-01-22 17:00:30 UTC (rev 8243)
@@ -657,6 +657,10 @@
@Override
public LineString getSelectedLine() {
if (getIsoModelAbstract().isCurrentDataElementType()) {
+ int[] twoFirstSelected = super.getTwoFirstSelected();
+ if (twoFirstSelected.length == 2) {
+ return ZCalquePolygone.getSelectedLine(twoFirstSelected[0], twoFirstSelected[1], getIsoModelAbstract());
+ }
return ZCalquePolygone.getSelectedLine(this, getIsoModelAbstract());
}
return super.getSelectedLine();
@@ -899,7 +903,7 @@
int w = getWidth() + 1;
CtuluListSelection memory = new CtuluListSelection(w * getHeight());
if (isos != null) {
- isos.setDimension(getWidth(), getHeight(), selection_);
+ isos.setDimension(getWidth(), getHeight(), memory);
}
Envelope envReel = _clipReel.getEnv();
for (idxElt = 0; idxElt < n; idxElt++) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|