private float[] exportCoords( GeometryArray ga, Transform3D transformation, double[] lower, double[] upper ) { float[] coords = new float[ga.getVertexCount() * 3]; ga.getCoordinates( ga.getInitialVertexIndex(), coords ); boolean doSceneTransform = ( transformation != null && transformation.getBestType() != Transform3D.IDENTITY ); for ( int i = 0; ( i + 2 ) < coords.length; i += 3 ) { Point3d coord = new Point3d( coords[i], coords[i + 1], coords[i + 2] ); // if ( doUserRotation ) { // userRotationMatrix.transform( coord ); // } if ( doSceneTransform ) { transformation.transform( coord ); } if ( doUserTransform ) { userMatrix.transform( coord ); } coords[i] = (float) coord.x; coords[i + 1] = (float) coord.y; coords[i + 2] = (float) coord.z; upper[0] = max( coords[i], upper[0] ); upper[1] = max( coords[i + 1], upper[1] ); upper[2] = max( coords[i + 2], upper[2] ); lower[0] = min( coords[i], lower[0] ); lower[1] = min( coords[i + 1], lower[1] ); lower[2] = min( coords[i + 2], lower[2] ); } return coords; }
public boolean getRange(final CtuluRange _b) { final GeometryArray geometrie = (GeometryArray) shape_.getGeometry(); final int nbPt = geometrie.getVertexCount(); _b.setToNill(); final double[] vs = new double[3]; for (int i = 0; i < nbPt; i++) { geometrie.getCoordinate(i, vs); _b.expandTo(vs[2]); } return true; }
protected void calculeBBox(final GeometryArray _geometrie) { if (_geometrie == null) { return; } if (bbox_ == null) { bbox_ = new BoundingBox(); } final int compte = _geometrie.getVertexCount(); final Point3d pts = new Point3d(); for (int i = 0; i < compte; i++) { _geometrie.getCoordinate(i, pts); bbox_.combine(pts); } }
public void setPaletteCouleurPlages(final BPalettePlageInterface _newPlage) { isColorUsed_ = false; palette_ = new BPalettePlage(_newPlage.getPlages()); final GeometryArray geometrie = (GeometryArray) shape_.getGeometry(); final int nbPt = geometrie.getVertexCount(); final Color4f[] cs = new Color4f[nbPt]; final double[] vs = new double[3]; for (int i = 0; i < nbPt; i++) { geometrie.getCoordinate(i, vs); Color c = palette_.getColorFor(vs[2]); if (c == null) { c = new Color(1, 1, 1, 1); } cs[i] = new Color4f(c); } setCouleurs(cs); support_.firePropertyChange("paletteCouleur", null, palette_); }
/** * colore l'objet d'une couleur unique. */ public boolean setCouleur(final Color _c) { if (shape_ == null || shape_.getGeometry() == null) { return false; } isColorUsed_ = true; final int nbPts = ((GeometryArray) shape_.getGeometry()).getVertexCount(); shape_.getAppearance().getColoringAttributes().setColor(new Color3f(_c)); final Color4f[] cs = new Color4f[nbPts]; Arrays.fill(cs, new Color4f(_c)); ((GeometryArray) shape_.getGeometry()).setColors(0, cs); return true; }
String texName = null; if ( ( GeometryArray.TEXTURE_COORDINATE_2 & ga.getVertexFormat() ) == GeometryArray.TEXTURE_COORDINATE_2 ) { texCoords = new float[ga.getVertexCount() * 2]; ga.getTextureCoordinates( 0, ga.getInitialTexCoordIndex( 0 ), texCoords ); for ( int i = 1; i < texCoords.length; i += 2 ) {
int vertexCount = ga.getVertexCount(); if ( vertexCount == 0 ) { LOG.error( "No coordinates found in the geometryArray, this may not be." );
ng.generateNormals( inf ); normals = new float[ga.getVertexCount() * 3]; ga.getNormals( ga.getInitialVertexIndex(), normals ); double[] normal = new double[3];