|
From: <bma...@us...> - 2011-05-11 14:00:34
|
Revision: 6254
http://fudaa.svn.sourceforge.net/fudaa/?rev=6254&view=rev
Author: bmarchan
Date: 2011-05-11 14:00:27 +0000 (Wed, 11 May 2011)
Log Message:
-----------
Fix : Prise en compte des geometries non visibles pour ajustement du zoom.
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java
trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/geometrie/GrBoite.java
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java 2011-05-06 17:24:33 UTC (rev 6253)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModeleGeometryDefault.java 2011-05-11 14:00:27 UTC (rev 6254)
@@ -56,7 +56,7 @@
}
public void getDomaineForGeometry(int _idxGeom, GrBoite _target) {
- if (geometries_ == null || geometries_.getNumGeometries() == 0) {
+ if (geometries_ == null || geometries_.getNumGeometries() == 0 || !isGeometryVisible(_idxGeom)) {
return;
}
final Geometry g = geometries_.getGeometry(_idxGeom);
@@ -234,11 +234,21 @@
if (geometries_ == null || geometries_.getNumGeometries() == 0) {
return null;
}
- final Envelope e = geometries_.getEnvelopeInternal();
- if (e == null) {
- return null;
+ GrBoite bt=null;
+ for (int i=geometries_.getNumGeometries()-1; i>=0; i--) {
+ if (isGeometryVisible(i)) {
+ final Geometry g = geometries_.getGeometry(i);
+ final Envelope e = g.getEnvelopeInternal();
+ if (bt==null) bt=new GrBoite();
+ bt.ajuste(e);
+ }
}
- return new GrBoite(new GrPoint(e.getMinX(), e.getMinY(), 0), new GrPoint(e.getMaxX(), e.getMaxY(), 0));
+ return bt;
+// final Envelope e = geometries_.getEnvelopeInternal();
+// if (e == null) {
+// return null;
+// }
+// return new GrBoite(new GrPoint(e.getMinX(), e.getMinY(), 0), new GrPoint(e.getMaxX(), e.getMaxY(), 0));
}
public int getNombre() {
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java 2011-05-06 17:24:33 UTC (rev 6253)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java 2011-05-11 14:00:27 UTC (rev 6254)
@@ -197,10 +197,10 @@
pts_.add(_p.x_, _p.y_, _p.z_, r, _cmd);
}
- public GrBoite getDomaine() {
- final Envelope e = pts_.getEnvelopeInternal();
- return new GrBoite(new GrPoint(e.getMinX(), e.getMinY(), 0), new GrPoint(e.getMaxX(), e.getMaxY(), 0));
- }
+// public GrBoite getDomaine() {
+// final Envelope e = pts_.getEnvelopeInternal();
+// return new GrBoite(new GrPoint(e.getMinX(), e.getMinY(), 0), new GrPoint(e.getMaxX(), e.getMaxY(), 0));
+// }
public void fillWithInfo(final InfoData _d, final ZCalqueAffichageDonneesInterface _layer) {
_d.setTitle(_layer.getTitle());
@@ -270,6 +270,7 @@
}
public void getDomaineForGeometry(int _idxGeom, GrBoite _target) {
+ if (!isGeometryVisible(_idxGeom)) return;
_target.o_.x_=getX(_idxGeom);
_target.o_.y_=getY(_idxGeom);
_target.e_.x_=_target.o_.x_;
Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/geometrie/GrBoite.java
===================================================================
--- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/geometrie/GrBoite.java 2011-05-06 17:24:33 UTC (rev 6253)
+++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/geometrie/GrBoite.java 2011-05-11 14:00:27 UTC (rev 6254)
@@ -181,7 +181,7 @@
}
ajuste(_p.getX(), _p.getY(), 0);
}
-
+
public void ajuste(final GrPoint _p) {
if (_p == null) {
return;
@@ -239,6 +239,25 @@
}
}
+ /**
+ * Ajoste \xE0 partir d'une enveloppe.
+ * @param _e L'enveloppe
+ */
+ public void ajuste(final Envelope _e) {
+ if (_e != null && !_e.isNull()) {
+ if (o_ == null) {
+ o_=new GrPoint(_e.getMinX(), _e.getMinY(), 0);
+ }
+ if (e_ == null) {
+ e_=new GrPoint(_e.getMaxX(), _e.getMaxY(), 0);
+ }
+ o_.x_=Math.min(o_.x_, _e.getMinX());
+ o_.y_=Math.min(o_.y_, _e.getMinY());
+ e_.x_=Math.max(e_.x_, _e.getMaxX());
+ e_.y_=Math.max(e_.y_, _e.getMaxY());
+ }
+ }
+
public boolean isIndefinie() {
return (o_ == null) || (e_ == null) || getDeltaX() < 0 || getDeltaY() < 0 || getDeltaZ() < 0;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|