/* * Project Info: http://jcae.sourceforge.net * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * (C) Copyright 2005, by EADS CRC * (C) Copyright 2007, by EADS France */ package org.jcae.viewer3d.fd; import java.util.Iterator; import org.jcae.viewer3d.ColoredDomain; import org.jcae.viewer3d.MarkDomain; /** * A domain of a finite difference mesh. * @author Jerome Robert */ public interface FDDomain extends ColoredDomain, MarkDomain { public static final byte SLOT_FIRST=0; public static final byte XY_SLOT=0; public static final byte XZ_SLOT=1; public static final byte YX_SLOT=2; public static final byte YZ_SLOT=3; public static final byte ZX_SLOT=4; public static final byte ZY_SLOT=5; public static final byte SLOT_LAST=5; int getNumberOfXPlate(); int getNumberOfYPlate(); int getNumberOfZPlate(); int getNumberOfXWire(); int getNumberOfYWire(); int getNumberOfZWire(); /** * * @param orientation XY_SLOT, XZ_SLOT... * @return */ int getNumberOfSlot(byte orientation); int getNumberOfSolid(); /** Return an iterator on {i, j1, k1, j2, k2} arrays, describing X plates */ Iterator<int[]> getXPlateIterator(); /** Return an iterator on {j, i1, k1, i2, k2} arrays, describing Y plates */ Iterator<int[]> getYPlateIterator(); /** Return an iterator on {k, i1, j1, i2, j2} arrays, describing Z plates */ Iterator<int[]> getZPlateIterator(); /** Return an iterator on {i, j, k, i2} arrays, describing X wires */ Iterator<int[]> getXWireIterator(); /** Return an iterator on {i, j, k, j2} arrays, describing Y wires */ Iterator<int[]> getYWireIterator(); /** Return an iterator on {i, j, k, k2} arrays, describing Z wires */ Iterator<int[]> getZWireIterator(); /** * Return an iterator on int[]{i1, i2, j, k}, describing XY and XZ slots<br> * Return an iterator on int[]{j1, j2, i, k}, describing YX and YZ slots<br> * Return an iterator on int[]{k1, k2, i, j}, describing ZY and ZX slots or<br> * float[]{x0, y0, z0, z1, y1, z1} */ Iterator<?> getSlotIterator(byte type); /** Return an iterator on {i1, j1, k1, i2, j2, k2} arrays, describing volumes*/ Iterator<int[]> getSolidIterator(); }