Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/tr/data
In directory sc8-pr-cvs1:/tmp/cvs-serv9836/src/org/fudaa/fudaa/tr/data
Added Files:
TrBcBoundaryBlockLayer.java TrBcBoundaryBlockModel.java
TrBcBoundaryBlockModelDefault.java
TrBcBoundaryLayerAbstract.java TrBcBoundaryLegendLayer.java
TrBcBoundaryLegendPanel.java TrBcBoundaryMiddleLayer.java
TrBcBoundaryMiddleModel.java
TrBcBoundaryMiddleModelDefault.java TrBcLayerGroup.java
TrBcPointLayer.java TrBcPointModel.java
TrBcPointModelDefault.java TrElementLayer.java
TrGridLayerGroup.java TrLayerGroup.java TrPointLayer.java
Removed Files:
TrBordLegendePanel.java TrCalque.java TrCalqueBord.java
TrCalqueCL.java TrCalqueLegende.java TrCalquePoint.java
TrCalquePolygone.java TrGroupeCL.java TrGroupeCalque.java
TrGroupeMaillage.java TrModeleBord.java
TrModeleBordAdapter.java TrModeleCL.java
TrModeleCLAdapter.java
Log Message:
General update
--- NEW FILE: TrBcBoundaryBlockLayer.java ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: TrBcBoundaryBlockModel.java ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: TrBcBoundaryBlockModelDefault.java ---
/*
* @file TrModeleBordAdapter.java
* @creation 10 sept. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import org.fudaa.dodico.h2d.H2dBcFrontierBlockInterface;
import org.fudaa.dodico.h2d.H2dBcManagerBlockInterface;
import org.fudaa.dodico.h2d.H2dPoint;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrPoint;
/**
* @author deniger
* @version $Id: TrBcBoundaryBlockModelDefault.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public class TrBcBoundaryBlockModelDefault implements TrBcBoundaryBlockModel {
H2dBcManagerBlockInterface clMng_;
public TrBcBoundaryBlockModelDefault(H2dBcManagerBlockInterface _clMng) {
if (_clMng == null)
throw new IllegalArgumentException("Param is null");
clMng_= _clMng;
}
/**
*
*/
public int getNbFrontier() {
return clMng_.getGrid().getFrontiers().getNbFrontier();
}
/**
*
*/
public H2dBcFrontierBlockInterface getFrontier(int _idxFrontier) {
return clMng_.getBlockFrontier(_idxFrontier);
}
/**
*
*/
public void getPoint(GrPoint _p,int _idxFrontier,int idxOnFrontier) {
H2dPoint p= clMng_.getGrid().getPt(clMng_.getGrid().getFrontiers().getIdx(_idxFrontier, idxOnFrontier));
_p.setCoordonnees(p.getX(), p.getY(), p.getZ());
}
/**
*
*/
public GrBoite getDomaine() {
return TrGridLayerGroup.getDomaine(clMng_.getGrid());
}
/**
*
*/
public int getNombre() {
return getNbFrontier();
}
/**
*
*/
public Object getObject(int _ind) {
return null;
}
}
--- NEW FILE: TrBcBoundaryLayerAbstract.java ---
/*
* @file TrCalqueBordAbstract.java
* @creation 20 nov. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import java.awt.Color;
import java.util.HashMap;
import org.fudaa.dodico.h2d.type.H2dBoundaryType;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesMutliSelection;
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.fudaa.tr.TrResource;
/**
* @author deniger
* @version $Id: TrBcBoundaryLayerAbstract.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public abstract class TrBcBoundaryLayerAbstract extends ZCalqueAffichageDonneesMutliSelection {
public class BordTraceLigneData {
HashMap bdTypeTlDataMap_;
public BordTraceLigneData() {}
public TraceLigne.Data getTlData(H2dBoundaryType _bd) {
if (bdTypeTlDataMap_ == null)
bdTypeTlDataMap_= new HashMap(6);
TraceLigne.Data r= (TraceLigne.Data)bdTypeTlDataMap_.get(_bd);
if (r == null) {
r= initBordTraceLigneData(_bd);
bdTypeTlDataMap_.put(_bd, r);
}
return r;
}
protected TraceLigne.Data initBordTraceLigneData(H2dBoundaryType _t) {
if (_t == H2dBoundaryType.SOLIDE_FROTTEMENT)
return new TraceLigne.Data(TraceLigne.LISSE, 1f, Color.orange);
else if (_t == H2dBoundaryType.SOLIDE)
return new TraceLigne.Data(
TraceLigne.LISSE,
1f,
new Color(164, 95, 30));
else if (_t == H2dBoundaryType.LIQUIDE_DEBIT_IMPOSE)
return new TraceLigne.Data(TraceLigne.LISSE, 1f, Color.red);
else if (_t == H2dBoundaryType.LIQUIDE_ONDE_INCIDENCE)
return new TraceLigne.Data(TraceLigne.TIRETE, 1f, Color.cyan);
else if (_t == H2dBoundaryType.LIQUIDE_HAUTEUR_VITESSES_IMPOSEES)
return new TraceLigne.Data(TraceLigne.TIRETE, 1f, Color.green);
else if (_t == H2dBoundaryType.LIQUIDE_HAUTEUR_IMPOSEE)
return new TraceLigne.Data(TraceLigne.LISSE, 1f, Color.green);
else if (_t == H2dBoundaryType.LIQUIDE_VITESSES_IMPOSEES)
return new TraceLigne.Data(TraceLigne.TIRETE, 1f, Color.cyan);
//liquid
else if (_t.isLiquide())
return new TraceLigne.Data(TraceLigne.LISSE, 1f, Color.cyan);
else
return new TraceLigne.Data(TraceLigne.LISSE, 1f, Color.black);
}
}
protected BordTraceLigneData bdTlData_;
/**
*
*/
public TrBcBoundaryLayerAbstract() {
setTitle(TrResource.getS("Bords"));
}
public TraceLigne.Data getTlData(H2dBoundaryType _t) {
if(bdTlData_==null) bdTlData_=new BordTraceLigneData();
return bdTlData_.getTlData(_t);
}
}
--- NEW FILE: TrBcBoundaryLegendLayer.java ---
/*
* @file TrCalqueLegende.java
* @creation 3 nov. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import org.fudaa.ebli.calque.BCalqueLegende;
import org.fudaa.ebli.calque.action.EbliActionInterface;
/**
* @author deniger
* @version $Id: TrBcBoundaryLegendLayer.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public class TrBcBoundaryLegendLayer extends BCalqueLegende{
/**
*
*/
public TrBcBoundaryLegendLayer() {
super();
}
}
--- NEW FILE: TrBcBoundaryLegendPanel.java ---
/*
* @file TrBordLegendePanel.java
* @creation 8 oct. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import java.awt.LayoutManager;
import java.util.Iterator;
import java.util.List;
import com.memoire.bu.BuGridLayout;
import com.memoire.bu.BuLabel;
import com.memoire.bu.BuPanel;
import org.fudaa.dodico.h2d.type.H2dBoundaryType;
import org.fudaa.ebli.palette.BSelecteurTraitComponent;
import org.fudaa.fudaa.commun.FudaaLib;
import org.fudaa.fudaa.dico.FdicoLib;
import org.fudaa.fudaa.tr.TrLib;
/**
* @author deniger
* @version $Id: TrBcBoundaryLegendPanel.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public class TrBcBoundaryLegendPanel extends BuPanel {
/**
*
*/
public TrBcBoundaryLegendPanel(TrBcBoundaryLayerAbstract _cqBord,List _bord) {
init(_cqBord,_bord);
setOpaque(false);
}
public void init(TrBcBoundaryLayerAbstract _cqBord,List _bord){
removeAll();
setLayout(new BuGridLayout(2,5,2));
for(Iterator it=_bord.iterator();it.hasNext();){
H2dBoundaryType b=(H2dBoundaryType)it.next();
BuLabel lb=new BuLabel(b.getNom());
lb.setOpaque(false);
lb.setFont(FdicoLib.FONT_DIALOG);
add(lb);
add(new BSelecteurTraitComponent(_cqBord.getTlData(b)));
}
}
}
--- NEW FILE: TrBcBoundaryMiddleLayer.java ---
/*
* @file TrBoundaryLayer.java
* @creation 21 nov. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import gnu.trove.TIntObjectIterator;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.Icon;
import org.fudaa.dodico.h2d.H2dBcFrontierBlockInterface;
import org.fudaa.dodico.h2d.H2dBcFrontierMiddleInterface;
import org.fudaa.dodico.h2d.H2dBoundary;
import org.fudaa.dodico.h2d.H2dLib;
import org.fudaa.dodico.h2d.type.H2dBoundaryType;
import org.fudaa.ebli.calque.ZModeleDonnees;
import org.fudaa.ebli.commun.EbliListeSelection;
import org.fudaa.ebli.commun.EbliListeSelectionMulti;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolygone;
import org.fudaa.ebli.geometrie.GrSegment;
import org.fudaa.ebli.trace.TraceLigne;
/**
* @author deniger
* @version $Id: TrBcBoundaryMiddleLayer.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public class TrBcBoundaryMiddleLayer extends TrBcBoundaryLayerAbstract {
protected TrBcBoundaryMiddleModel m_;
protected TraceLigne tl_;
protected TraceLigne tlSelection_;
/**
*
*/
public TrBcBoundaryMiddleLayer(TrBcBoundaryMiddleModel _m) {
m_= _m;
}
public void paintComponent(Graphics g) {
GrBoite clip= getClipReel(g);
GrBoite domaine= m_.getDomaine();
//Si le domaine des polys n'est pas dans le domaine d'affichage on arrete
if (!domaine.intersectXY(clip)) {
return;
}
//on recupere le morphisme qui va bien (transfo coordonnees reelle
//en coordonnes ecran.
GrMorphisme versEcran= getVersEcran();
if (tl_ == null)
tl_= new TraceLigne((Graphics2D)g);
else
tl_.setGraphics((Graphics2D)g);
tl_.setEpaisseur(1f);
tl_.setCouleur(Color.red);
int n= m_.getNbFrontier();
GrSegment seg= new GrSegment();
seg.o= new GrPoint();
seg.e= new GrPoint();
GrPoint grpTemp= new GrPoint();
TraceLigne.Data data;
//une boite tempo contenenant les points fin et init
GrBoite b= new GrBoite();
H2dBoundaryType bType;
boolean extrem;
//on parcourt les frontiere du maillage
for (int i= n - 1; i >= 0; i--) {
H2dBcFrontierMiddleInterface bd= m_.getFrontier(i);
int nbPt= bd.getNbPt();
extrem= true;
//on parcourt les different type de bord pour la frontiere i
for (int j= nbPt - 1; j >= 0; j -= 2) {
bType= bd.getBcType(j);
data= getTlData(bType);
m_.getPoint(seg.o, i, j - 1);
m_.getPoint(seg.e, i, j);
grpTemp.initialiseAvec(seg.e);
seg.boite(b);
if (clip.intersectXY(b)) {
seg.autoApplique(versEcran);
tl_.init(data);
tl_.dessineTrait(seg.o.x, seg.o.y, seg.e.x, seg.e.y);
}
seg.o.initialiseAvec(grpTemp);
m_.getPoint(seg.e, i, (extrem ? 0 : j + 1));
seg.boite(b);
if (clip.intersectXY(b)) {
seg.autoApplique(versEcran);
tl_.init(data);
tl_.dessineTrait(seg.o.x, seg.o.y, seg.e.x, seg.e.y);
}
extrem= false;
}
}
if ((rapide_) || (isSelectionEmpty()))
return;
if (tlSelection_ == null) {
tlSelection_= new TraceLigne(g);
} else
tlSelection_.setGraphics((Graphics2D)g);
initIconeSelection();
initCouleurSelection();
Color cs= couleurSelection();
Icon ic= iconeSelection();
if (isAttenue()) {
cs= attenueCouleur(cs);
ic= attenueIcone(ic);
}
tlSelection_.setCouleur(cs);
int max, temp, idxFr;
TIntObjectIterator itIntObj= selection_.getIterator();
for (int i= selection_.getNbList() - 1; i >= 0; i--) {
itIntObj.advance();
idxFr= itIntObj.key();
EbliListeSelection s= (EbliListeSelection)itIntObj.value();
max= s.getMaxIndex();
n= m_.getFrontier(idxFr).getNbPt() - 1;
for (int j= s.getMinIndex(); j <= max; j++) {
if (s.isSelected(j)) {
temp= H2dLib.getIdxFromIdxMid(j);
m_.getPoint(seg.o, idxFr, temp - 1);
m_.getPoint(seg.e, idxFr, (temp == n ? 0 : temp + 1));
seg.boite(b);
if (clip.intersectXY(b)) {
seg.autoApplique(versEcran);
tlSelection_.dessineTrait(seg.o.x, seg.o.y, seg.e.x, seg.e.y);
}
}
}
}
}
/**
*
*/
public EbliListeSelectionMulti selection(GrPoint _pt, int _tolerance) {
GrMorphisme versEcran= getVersEcran();
GrBoite bClip= getDomaine();
bClip.autoApplique(versEcran);
if ((!bClip.contientXY(_pt)) && (bClip.distanceXY(_pt) > _tolerance))
return null;
bClip= getClipReel(getGraphics());
GrSegment seg= new GrSegment();
seg.e= new GrPoint();
seg.o= new GrPoint();
GrPoint eMem= new GrPoint();
GrPoint oMem= new GrPoint();
GrBoite boite= new GrBoite();
for (int i= m_.getNbFrontier() - 1; i >= 0; i--) {
//middle points ...
m_.getPoint(seg.e,i,0);
for (int j= m_.getFrontier(i).getNbPt() - 1; j >= 0; j -= 2) {
//on initialise le point du milieu.
m_.getPoint(seg.o,i,j);
oMem.initialiseAvec(seg.o);
seg.boite(boite);
if (boite.intersectXY(bClip)) {
seg.autoApplique(versEcran);
if (seg.estSelectionne(_tolerance, _pt)) {
EbliListeSelectionMulti r= new EbliListeSelectionMulti(1);
r.add(i, H2dLib.getIdxMidFromIdx(j));
return r;
}
}
seg.o.initialiseAvec(oMem);
m_.getPoint(seg.e,i,j-1);
eMem.initialiseAvec(seg.e);
seg.boite(boite);
if (boite.intersectXY(bClip)) {
seg.autoApplique(versEcran);
if (seg.estSelectionne(_tolerance, _pt)) {
EbliListeSelectionMulti r= new EbliListeSelectionMulti(1);
r.add(i, H2dLib.getIdxMidFromIdx(j));
return r;
}
}
//point e
seg.e.initialiseAvec(eMem);
}
}
return null;
}
/**
*
*/
public EbliListeSelectionMulti selection(GrPolygone _poly) {
GrPolygone polyReel= _poly.applique(getVersReel());
GrBoite bPolyReel= polyReel.boite();
if ((!bPolyReel.intersectXY(getDomaine()))
|| (!bPolyReel.intersectXY(getClipReel(getGraphics()))))
return null;
GrPoint pTemp= new GrPoint();
GrPoint pTemp2= new GrPoint();
EbliListeSelectionMulti r= new EbliListeSelectionMulti(m_.getNbFrontier());
EbliListeSelection lBord= null;
for (int i= m_.getNbFrontier() - 1; i >= 0; i--) {
lBord= null;
//middle points ...
m_.getPoint(pTemp,i,0);
int nbPt=m_.getFrontier(i).getNbPt();
for (int j= nbPt - 1; j >= 0; j -= 2) {
m_.getPoint(pTemp2,i,j - 1);
//test j+1
if ((bPolyReel.contientXY(pTemp))
&& (polyReel.contientXY(pTemp))
&& (bPolyReel.contientXY(pTemp2))
&& (polyReel.contientXY(pTemp2))) {
m_.getPoint(pTemp,i,j);
//test j
if ((bPolyReel.contientXY(pTemp)) && (polyReel.contientXY(pTemp))) {
m_.getPoint(pTemp,i,j - 1);
if (lBord == null) //divide by two
lBord= new EbliListeSelection(nbPt >> 1);
lBord.add(H2dLib.getIdxMidFromIdx(j));
}
}
pTemp.initialiseAvec(pTemp2);
}
if (lBord != null) {
r.set(i, lBord);
}
}
if (r.isEmpty())
return null;
else
return r;
}
/**
*
*/
public ZModeleDonnees modeleDonnees() {
return m_;
}
}
--- NEW FILE: TrBcBoundaryMiddleModel.java ---
/*
* @file TrBcboundaryMiddleModel.java
* @creation 21 nov. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import org.fudaa.dodico.h2d.H2dBcFrontierMiddleInterface;
import org.fudaa.ebli.calque.ZModeleDonnees;
import org.fudaa.ebli.geometrie.GrPoint;
/**
* @author deniger
* @version $Id: TrBcBoundaryMiddleModel.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public interface TrBcBoundaryMiddleModel extends ZModeleDonnees {
/**
* Le nombre de frontiere du maillage
*/
public int getNbFrontier();
/**
* Renvoie les bords de la frontiere _i
*/
public H2dBcFrontierMiddleInterface getFrontier(int _idxFrontier);
/**
* Initialise <code>_p</code> a partir des donnees du point
* d'indice <code>_idxGlobal</code> sur le domaine
*/
public void getPoint( GrPoint _p,int _idxFr,int _idxPtOnFrontier);
}
--- NEW FILE: TrBcBoundaryMiddleModelDefault.java ---
/*
* @file TrBcBoundaryMiddleModelDefault.java
* @creation 21 nov. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import org.fudaa.dodico.h2d.H2dBcFrontierMiddleInterface;
import org.fudaa.dodico.h2d.H2dBcManagerMiddleInterface;
import org.fudaa.dodico.h2d.H2dGrid;
import org.fudaa.dodico.h2d.H2dPoint;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrPoint;
/**
* @author deniger
* @version $Id: TrBcBoundaryMiddleModelDefault.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public class TrBcBoundaryMiddleModelDefault
implements TrBcBoundaryMiddleModel {
H2dBcManagerMiddleInterface mng_;
H2dGrid grid_;
/**
*
*/
public TrBcBoundaryMiddleModelDefault(H2dBcManagerMiddleInterface _mng) {
mng_=_mng;
grid_=_mng.getGrid();
}
/**
*
*/
public int getNbFrontier() {
return grid_.getFrontiers().getNbFrontier();
}
/**
*
*/
public H2dBcFrontierMiddleInterface getFrontier(int _idxFrontier) {
return mng_.getMiddleFrontier(_idxFrontier);
}
/**
*
*/
public void getPoint(GrPoint _p, int _idxFr, int _idxPtOnFrontier) {
H2dPoint p=grid_.getPt(grid_.getFrontiers().getIdx(_idxFr,_idxPtOnFrontier));
_p.setCoordonnees(p.getX(),p.getY(),p.getZ());
}
/**
*
*/
public GrBoite getDomaine() {
return TrGridLayerGroup.getDomaine(grid_);
}
/**
*
*/
public int getNombre() {
return getNbFrontier();
}
/**
*
*/
public Object getObject(int _ind) {
return null;
}
}
--- NEW FILE: TrBcLayerGroup.java ---
/*
* @file TrGroupeCL.java
* @creation 11 sept. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import org.fudaa.ebli.calque.ContextuelDelegator;
import org.fudaa.fudaa.tr.TrResource;
/**
* @author deniger
* @version $Id: TrBcLayerGroup.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public class TrBcLayerGroup extends TrLayerGroup {
public TrBcLayerGroup(){
setTitle(TrResource.getS("cl"));
setDestructible(false);
}
public final TrBcPointLayer getBcPointLayer() {
return (TrBcPointLayer)getCalqueParNom("cqCL");
}
public final TrBcBoundaryLayerAbstract getBcBoundaryLayer() {
return (TrBcBoundaryLayerAbstract)getCalqueParNom("cqBord");
}
public final void addBcPointLayer(TrBcPointLayer _c) {
_c.setName("cqCL");
_c.setDestructible(false);
add(_c);
}
public final void addBcBoundaryLayer(TrBcBoundaryLayerAbstract _c) {
_c.setName("cqBord");
_c.setDestructible(false);
add(_c);
}
public final void setContextuelDelegator(ContextuelDelegator _d) {
getBcPointLayer().setContextuelDelegator(_d);
getBcBoundaryLayer().setContextuelDelegator(_d);
}
}
--- NEW FILE: TrBcPointLayer.java ---
/*
* @file TrCalqueCL.java
* @creation 11 sept. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import gnu.trove.TIntObjectIterator;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.Icon;
import org.fudaa.dodico.commun.DodicoCommandManager;
import org.fudaa.dodico.h2d.H2dBcFrontierBlockInterface;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesMutliSelection;
import org.fudaa.ebli.calque.ZModeleDonnees;
import org.fudaa.ebli.calque.action.EbliActionInterface;
import org.fudaa.ebli.commun.EbliListeSelection;
import org.fudaa.ebli.commun.EbliListeSelectionMulti;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrMorphisme;
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolygone;
import org.fudaa.ebli.trace.TraceIcone;
import org.fudaa.fudaa.commun.FudaaCommonImplementation;
import org.fudaa.fudaa.tr.TrFilleVisu;
import org.fudaa.fudaa.tr.TrResource;
/**
* @author deniger
* @version $Id: TrBcPointLayer.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public class TrBcPointLayer
extends ZCalqueAffichageDonneesMutliSelection{
private TrBcPointModel m_;
private boolean isT6_;
TraceIcone mid;
public TrBcPointLayer(TrBcPointModel _cl) {
setTitle(TrResource.getS("points"));
m_= _cl;
isT6_=m_.isT6();
if(isT6_){ mid=new TraceIcone(TraceIcone.CROIX,1);}
}
public TrBcPointModel getModeleCl() {
return (TrBcPointModel)modeleDonnees();
}
public int[] isSelectionContiguous(int _i){
return super.isSelectionContiguous(_i,m_.getNbPointInFrontier(_i));
}
/**
* @param _g
*/
public void paintComponent(Graphics _g) {
if((!isT6_) &&( isRapide() || isSelectionEmpty()))
return;
GrBoite clip= getClipReel(_g);
GrBoite domaine= m_.getDomaine();
//Si le domaine des polys n'est pas dans le domaine d'affichage on arrete
if (!domaine.intersectXY(clip)) {
return;
}
GrMorphisme versEcran= getVersEcran();
boolean attenue= isAttenue();
GrPoint p=new GrPoint();
if(isT6_){
GrBoite b=domaine.applique(versEcran);
int taille=(int)(b.e.y-b.o.y)/10;
if(taille>3) taille=3;
mid.taille(taille);
Color old=_g.getColor();
if(attenue)
_g.setColor(attenueCouleur(Color.green));
else
_g.setColor(Color.green);
for(int i=m_.getNbFrontier()-1;i>=0;i--){
for(int j=m_.getNbPointInFrontier(i)-1;j>=0;j-=2){
m_.point(p, i, j);
if(clip.contientXY(p)){
p.autoApplique(versEcran);
mid.paintIcon(this, _g, (int)p.x, (int)p.y);
}
}
}
_g.setColor(old);
}
if (isSelectionEmpty() || isRapide())
return;
//boolean rapide= isRapide();
initIconeSelection();
initCouleurSelection();
Color cs= couleurSelection();
Icon ic= iconeSelection();
if (attenue) {
cs= attenueCouleur(cs);
ic= attenueIcone(ic);
}
_g.setColor(cs);
TIntObjectIterator it= selection_.getIterator();
for (int i= selection_.getNbList(); i-- > 0;) {
it.advance();
int fr=it.key();
EbliListeSelection l=(EbliListeSelection)it.value();
int max=l.getMaxIndex();
for (int j= l.getMinIndex();j<=max;j++) {
if(l.isSelected(j)){
m_.point(p,fr,j);
if (clip.contientXY(p)) {
p.autoApplique(versEcran);
ic.paintIcon(this, _g, (int)p.x, (int)p.y);
}
}
}
}
}
/**
*
*/
public ZModeleDonnees modeleDonnees() {
return m_;
}
/**
*
*/
public EbliListeSelectionMulti selection(GrPoint _pt, int _tolerance) {
GrMorphisme versEcran= getVersEcran();
GrBoite bClip= getDomaine();
bClip.autoApplique(versEcran);
if ((!bClip.contientXY(_pt)) && (bClip.distanceXY(_pt) > _tolerance))
return null;
bClip= getClipReel(getGraphics());
GrPoint p= new GrPoint();
for (int i= m_.getNbFrontier() - 1; i >= 0; i--) {
for (int j= m_.getNbPointInFrontier(i)-1; j >= 0; j--) {
m_.point(p,i,j);
if (bClip.contientXY(p)) {
p.autoApplique(versEcran);
if (GrPoint.estSelectionne(p, _tolerance, _pt)) {
EbliListeSelectionMulti r= new EbliListeSelectionMulti(1);
r.add(i, j);
return r;
}
}
}
}
return null;
}
/**
*
*/
public EbliListeSelectionMulti selection(GrPolygone _poly) {
GrPolygone polyReel= _poly.applique(getVersReel());
GrBoite boitePolyReel= polyReel.boite();
//on verifie si la boite du polygone intersecte le domaine et le clip d'affichage
//surement inutile pour le clip d'affichage
if( (!boitePolyReel.intersectXY(getDomaine())) ||(!boitePolyReel.intersectXY(getClipReel(getGraphics()))))
return null;
EbliListeSelectionMulti r= createSelection();
GrPoint p= new GrPoint();
for (int i= m_.getNbFrontier() - 1; i >= 0; i--) {
EbliListeSelection l= null;
int nbPt=m_.getNbPointInFrontier(i);
for (int j= nbPt-1; j >= 0; j--) {
m_.point(p, i,j);
if ((boitePolyReel.contientXY(p))
&& (polyReel.contientXY(p))) {
if (l == null)
l= new EbliListeSelection(nbPt);
l.add(j);
}
}
if (l != null)
r.set(i, l);
}
if (r.isEmpty())
return null;
else
return r;
}
/**
*
*/
protected void buildActions() {}
}
--- NEW FILE: TrBcPointModel.java ---
/*
* @file TrModeleCL.java
* @creation 11 sept. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import org.fudaa.dodico.h2d.H2dBcFrontierBlockInterface;
import org.fudaa.dodico.h2d.H2dBcManagerBlockInterface;
import org.fudaa.ebli.calque.ZModeleDonnees;
import org.fudaa.ebli.geometrie.GrPoint;
/**
* @author deniger
* @version $Id: TrBcPointModel.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public interface TrBcPointModel extends ZModeleDonnees{
public boolean point(GrPoint _p, int _idxFrontier,int idxPtOnFrontier);
public int getNbFrontier();
public int getNbPointInFrontier(int _i);
public boolean isT6();
}
--- NEW FILE: TrBcPointModelDefault.java ---
/*
* @file TrModeleCLAbstract.java
* @creation 11 sept. 2003
* @modification $Date: 2003/11/21 15:06:45 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import org.fudaa.dodico.h2d.H2dBcFrontierBlockInterface;
import org.fudaa.dodico.h2d.H2dBcManagerBlockInterface;
import org.fudaa.dodico.h2d.H2dGrid;
import org.fudaa.dodico.h2d.H2dPoint;
import org.fudaa.dodico.h2d.type.H2dElementType;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrPoint;
/**
* @author deniger
* @version $Id: TrBcPointModelDefault.java,v 1.1 2003/11/21 15:06:45 deniger Exp $
*/
public class TrBcPointModelDefault implements TrBcPointModel {
H2dGrid m_;
public TrBcPointModelDefault(H2dGrid _m){
if(_m==null) throw new IllegalArgumentException("param null");
m_=_m;
}
public int getNbFrontier(){
return m_.getFrontiers().getNbFrontier();
}
/**
*
*/
public GrBoite getDomaine() {
return TrGridLayerGroup.getDomaine(m_);
}
/**
*
*/
public int getNombre() {
return m_.getFrontiers().getNbTotalPt();
}
/**
*
*/
public Object getObject(int _ind) {
return null;
}
/**
*
*/
public int getNbPointInFrontier(int _i) {
return m_.getFrontiers().getNbPt(_i);
}
/**
*
*/
public boolean point(GrPoint _p, int _idxFrontier, int idxPtOnFrontier) {
H2dPoint p=m_.getPt(m_.getFrontiers().getIdx(_idxFrontier, idxPtOnFrontier));
_p.setCoordonnees(p.getX(),p.getY(), p.getZ());
return true;
}
/**
*
*/
public boolean isT6() {
return m_.getEltType()==H2dElementType.T6;
}
}
--- NEW FILE: TrElementLayer.java ---
/*
* @file TrCalquePolygone.java
* @creation 13 nov. 2003
* @modification $Date: 2003/11/21 15:06:46 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import org.fudaa.ebli.calque.ZCalquePolygone;
import org.fudaa.ebli.calque.ZModelePolygone;
import org.fudaa.ebli.calque.action.EbliActionInterface;
/**
* @author deniger
* @version $Id: TrElementLayer.java,v 1.1 2003/11/21 15:06:46 deniger Exp $
*/
public class TrElementLayer extends ZCalquePolygone {
/**
*
*/
public TrElementLayer() {
super();
}
/**
* @param _modele
*/
public TrElementLayer(ZModelePolygone _modele) {
super(_modele);
}
}
--- NEW FILE: TrGridLayerGroup.java ---
/*
* @file TrMaillage.java
* @creation 30 juin 2003
* @modification $Date: 2003/11/21 15:06:46 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import java.awt.Graphics;
import gnu.trove.TIntObjectHashMap;
import org.fudaa.dodico.h2d.H2dElement;
import org.fudaa.dodico.h2d.H2dGrid;
import org.fudaa.dodico.h2d.H2dPoint;
import org.fudaa.ebli.calque.ContextuelDelegator;
import org.fudaa.ebli.calque.ZCalquePoint;
import org.fudaa.ebli.calque.ZCalquePolygone;
import org.fudaa.ebli.calque.ZModeleDonnees;
import org.fudaa.ebli.calque.ZModeleLongPolygone;
import org.fudaa.ebli.calque.ZModelePoint;
import org.fudaa.ebli.calque.ZModelePolygone;
import org.fudaa.ebli.commun.EbliListeSelection;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolygone;
import org.fudaa.fudaa.tr.TrResource;
/**
* @author deniger
* @version $Id: TrGridLayerGroup.java,v 1.1 2003/11/21 15:06:46 deniger Exp $
*/
public class TrGridLayerGroup extends TrLayerGroup {
H2dGrid mail_;
TrPointLayer cqPt_;
TrElementLayer cqPoly_;
// ZCalqueLongPolygone cqBord_;
/**
* @param _pts
* @param _elts
*/
public TrGridLayerGroup(H2dGrid _maill) {
setTitle(TrResource.getS("Maillage"));
setName("cqMaillage");
setDestructible(false);
mail_= _maill;
cqPt_= new TrPointLayer(new ModelePoint());
cqPt_.setName("cqPts");
cqPt_.setTitle(TrResource.getS("Points"));
cqPt_.setDestructible(false);
add(cqPt_);
cqPoly_= new TrElementLayer(new ModelePolygone());
cqPoly_.setDestructible(false);
cqPoly_.setName("cqPolygon");
cqPoly_.setTitle(TrResource.getS("Polygones"));
add(cqPoly_);
// cqBord_= new ZCalqueLongPolygone(new ModeleBord());
// cqBord_.setDestructible(false);
// cqBord_.setName("cqEdges");
// cqBord_.setTitle(TrResource.getS("Bords"));
// add(cqBord_);
}
public void setContextuelDelegator(ContextuelDelegator _d){
cqPt_.setContextuelDelegator(_d);
cqPoly_.setContextuelDelegator(_d);
// cqBord_.setContextuelDelegator(_d);
}
/**
*
*/
public GrBoite getDomaine() {
return getDomaine(mail_);
}
public static GrBoite getDomaine(H2dGrid _m) {
GrBoite b= new GrBoite();
H2dPoint pt= _m.getMinPoint();
b.o= new GrPoint(pt.getX(), pt.getY(), pt.getZ());
pt= _m.getMaxPoint();
b.e= new GrPoint(pt.getX(), pt.getY(), pt.getZ());
return b;
}
public ZModelePoint getModelePoint() {
return new ModelePoint();
}
public ZModelePolygone getModelePolygone() {
return new ModelePolygone();
}
public ZModeleLongPolygone getModeleBord() {
return new ModeleBord();
}
private class ModelePoint implements ZModelePoint {
/**
*
*/
public boolean point(GrPoint _p, int _i) {
return TrGridLayerGroup.this.point(_p, _i);
}
/**
*
*/
public GrBoite getDomaine() {
return TrGridLayerGroup.this.getDomaine();
}
/**
*
*/
public int getNombre() {
return TrGridLayerGroup.this.mail_.getPtsNb();
}
/**
*
*/
public Object getObject(int _ind) {
throw new UnsupportedOperationException("not implemented method");
}
}
protected class ModelePolygone implements ZModelePolygone {
/**
*
*/
public boolean polygone(GrPolygone _p, int _i) {
return TrGridLayerGroup.this.polygone(_p, _i);
}
/**
*
*/
public GrBoite getDomaine() {
return TrGridLayerGroup.this.getDomaine();
}
/**
*
*/
public int getNombre() {
return TrGridLayerGroup.this.mail_.getEltNb();
}
/**
*
*/
public Object getObject(int _ind) {
throw new UnsupportedOperationException("not implemented method");
}
/**
*
*/
public int nbPoints(int i) {
return TrGridLayerGroup.this.getNbPointsForElt(i);
}
}
public int getNbPointsForElt(int _indexElt) {
return mail_.getElement(_indexElt).getPtNb();
}
public static void initGrPoint(H2dPoint _pt, GrPoint _ptToinit) {
_ptToinit.x= _pt.getX();
_ptToinit.y= _pt.getY();
_ptToinit.z= _pt.getZ();
}
public static void initGrPolygone(
H2dGrid _ma,
H2dElement _pt,
GrPolygone _ptToinit) {
int n= _pt.getPtNb();
if (_ptToinit.nombre() != n) {
_ptToinit.sommets.setSize(n);
}
GrPoint grpt;
H2dPoint hpt;
for (int i= 0; i < n; i++) {
hpt= _ma.getPt(_pt.getPtIndex()[i]);
grpt= _ptToinit.sommets.renvoie(i);
if (grpt != null)
initGrPoint(hpt, grpt);
else {
grpt= new GrPoint(hpt.getX(), hpt.getY(), hpt.getZ());
_ptToinit.sommets.remplace(grpt, i);
}
}
}
private class ModeleBord implements ZModeleLongPolygone {
private TIntObjectHashMap indexMinMax_;
public ModeleBord() {
int n= mail_.getFrontiers().getNbFrontierIntern();
if (n > 0) {
indexMinMax_= new TIntObjectHashMap(n);
for (int i= 0; i < n; i++) {
indexMinMax_.put(i, mail_.getMinMaxPointFrontiere(i));
}
}
}
/**
*
*/
public GrBoite getDomaineForPolygoneIdx(int _idx) {
if (_idx == 0)
return TrGridLayerGroup.this.getDomaine();
if (indexMinMax_ == null) {
System.err.println("Prob !!!");
return null;
} else {
H2dPoint[] minMax= (H2dPoint[])indexMinMax_.get(_idx - 1);
GrBoite r= new GrBoite();
r.o= new GrPoint();
r.e= new GrPoint();
initGrPoint(minMax[0], r.o);
initGrPoint(minMax[1], r.e);
return r;
}
}
/**
*
*/
public int getNbPointForPolygoneIdx(int _idx) {
return TrGridLayerGroup.this.mail_.getFrontiers().getNbPt(_idx);
}
/**
*
*/
public int getPolygoneNb() {
return TrGridLayerGroup.this.mail_.getFrontiers().getNbFrontier();
}
/**
*
*/
public boolean point(GrPoint _p, int _polygoneIdx, int _pointIdx) {
H2dPoint pt=
mail_.getPt(
TrGridLayerGroup.this.mail_.getFrontiers().getIdx(
_polygoneIdx,
_pointIdx));
initGrPoint(pt, _p);
return true;
}
/**
*
*/
public GrBoite getDomaine() {
return TrGridLayerGroup.this.getDomaine();
}
/**
*
*/
public int getNombre() {
return TrGridLayerGroup.this.mail_.getFrontiers().getNbFrontier();
}
/**
*
*/
public Object getObject(int _ind) {
return null;
}
}
public void paintComponent(Graphics _g){
if( (!cqPoly_.isVisible()) || (!cqPt_.isSelectionEmpty()) || (cqPt_.getPaletteCouleur()!=null) )
super.paintComponent(_g);
else {cqPoly_.paintComponent(_g);}
}
/**
*
*/
public boolean point(GrPoint _p, int _i) {
initGrPoint(mail_.getPt(_i), _p);
return true;
}
/**
*
*/
public boolean polygone(GrPolygone _poly, int _i) {
initGrPolygone(this.mail_, mail_.getElement(_i), _poly);
return true;
}
/**
*
*/
public ZModeleDonnees modeleDonnees() {
return cqPt_.modeleDonnees();
}
/**
*
*/
public EbliListeSelection selection(
GrPoint _pt,
int _tolerance) {
return cqPt_.selection(_pt, _tolerance);
}
/**
*
*/
public EbliListeSelection selection(GrPolygone _poly) {
return cqPt_.selection(_poly);
}
private boolean polyOldValue= true;
/**
*
*/
public void setRapide(boolean _v) {
if (rapide_ != _v) {
boolean vp= rapide_;
rapide_= _v;
cqPt_.setRapide(_v);
// cqBord_.setRapide(_v);
if (_v) {
polyOldValue= cqPoly_.isVisible();
cqPoly_.setVisible(false);
} else
cqPoly_.setVisible(polyOldValue);
firePropertyChange("ajustement", vp, rapide_);
}
}
}
--- NEW FILE: TrLayerGroup.java ---
/*
* @file TrGroupeCalque.java
* @creation 6 nov. 2003
* @modification $Date: 2003/11/21 15:06:46 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import org.fudaa.ebli.calque.BGroupeCalque;
import org.fudaa.ebli.calque.action.EbliActionInterface;
/**
* @author deniger
* @version $Id: TrLayerGroup.java,v 1.1 2003/11/21 15:06:46 deniger Exp $
*/
public class TrLayerGroup extends BGroupeCalque {
/**
*
*/
public TrLayerGroup() {
super();
}
}
--- NEW FILE: TrPointLayer.java ---
/*
* @file TrCalquePoint.java
* @creation 13 nov. 2003
* @modification $Date: 2003/11/21 15:06:46 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.fudaa.tr.data;
import org.fudaa.ebli.calque.ZCalquePoint;
import org.fudaa.ebli.calque.ZModelePoint;
import org.fudaa.ebli.calque.action.EbliActionInterface;
/**
* @author deniger
* @version $Id: TrPointLayer.java,v 1.1 2003/11/21 15:06:46 deniger Exp $
*/
public class TrPointLayer extends ZCalquePoint{
/**
*
*/
public TrPointLayer() {
super();
}
/**
* @param _modele
*/
public TrPointLayer(ZModelePoint _modele) {
super(_modele);
}
}
--- TrBordLegendePanel.java DELETED ---
--- TrCalque.java DELETED ---
--- TrCalqueBord.java DELETED ---
--- TrCalqueCL.java DELETED ---
--- TrCalqueLegende.java DELETED ---
--- TrCalquePoint.java DELETED ---
--- TrCalquePolygone.java DELETED ---
--- TrGroupeCL.java DELETED ---
--- TrGroupeCalque.java DELETED ---
--- TrGroupeMaillage.java DELETED ---
--- TrModeleBord.java DELETED ---
--- TrModeleBordAdapter.java DELETED ---
--- TrModeleCL.java DELETED ---
--- TrModeleCLAdapter.java DELETED ---
|