/** Returns the GeometryArray for the intersection */ public GeometryArray getGeometryArray() { if (geom == null) { GeometryArray[] ga = pickResult.getGeometryArrays(); geom = ga[geomIndex]; if (geom instanceof IndexedGeometryArray) { iGeom = (IndexedGeometryArray)geom; } int vertexFormat = geom.getVertexFormat(); hasColors = (0 != (vertexFormat & (GeometryArray.COLOR_3 | GeometryArray.COLOR_4))); hasNormals = (0 != (vertexFormat & GeometryArray.NORMALS)); hasTexCoords = (0 != (vertexFormat & (GeometryArray.TEXTURE_COORDINATE_2 | GeometryArray.TEXTURE_COORDINATE_3))); } return geom; }
/** Sets the geom index into the pick result */ void setGeomIndex(int gi) { if (geomIndex != gi) { GeometryArray[] ga = pickResult.getGeometryArrays(); geom = ga[gi]; if (geom instanceof IndexedGeometryArray) { iGeom = (IndexedGeometryArray)geom; } int vertexFormat = geom.getVertexFormat(); hasColors = (0 != (vertexFormat & (GeometryArray.COLOR_3 | GeometryArray.COLOR_4))); hasNormals = (0 != (vertexFormat & GeometryArray.NORMALS)); hasTexCoords = (0 != (vertexFormat & (GeometryArray.TEXTURE_COORDINATE_2 | GeometryArray.TEXTURE_COORDINATE_3))); } geomIndex = gi; }
/** Constructor @param pickResult The pickResult this intersection is part of. */ PickIntersection (PickResult pr, GeometryArray geomArr) { // pr can't be null. pickResult = pr; geom = geomArr; if (geom == null) { GeometryArray[] ga = pickResult.getGeometryArrays(); geom = ga[geomIndex]; } if (geom instanceof IndexedGeometryArray) { iGeom = (IndexedGeometryArray)geom; } int vertexFormat = geom.getVertexFormat(); hasColors = (0 != (vertexFormat & (GeometryArray.COLOR_3 | GeometryArray.COLOR_4))); hasNormals = (0 != (vertexFormat & GeometryArray.NORMALS)); hasTexCoords = (0 != (vertexFormat & (GeometryArray.TEXTURE_COORDINATE_2 | GeometryArray.TEXTURE_COORDINATE_3))); }
int getInterleavedColorOffset(GeometryArray geo) { int offset = 0; int vformat = geo.getVertexFormat(); if ((vformat & GeometryArray.TEXTURE_COORDINATE_2) == GeometryArray.TEXTURE_COORDINATE_2) { offset += 2 * geo.getTexCoordSetCount(); } else if ((vformat & GeometryArray.TEXTURE_COORDINATE_3) == GeometryArray.TEXTURE_COORDINATE_3) { offset += 3 * geo.getTexCoordSetCount(); } return offset; }
int getInterleavedColorOffset(GeometryArray geo) { int offset = 0; int vformat = geo.getVertexFormat(); if ((vformat & GeometryArray.TEXTURE_COORDINATE_2) == GeometryArray.TEXTURE_COORDINATE_2) { offset += 2 * geo.getTexCoordSetCount(); } else if ((vformat & GeometryArray.TEXTURE_COORDINATE_3) == GeometryArray.TEXTURE_COORDINATE_3) { offset += 3 * geo.getTexCoordSetCount(); } return offset; }
int getInterleavedNormalOffset(GeometryArray geo) { int offset = 0; int vformat = geo.getVertexFormat(); if ((vformat & GeometryArray.TEXTURE_COORDINATE_2) == GeometryArray.TEXTURE_COORDINATE_2) { offset += 2 * geo.getTexCoordSetCount(); } else if ((vformat & GeometryArray.TEXTURE_COORDINATE_3) == GeometryArray.TEXTURE_COORDINATE_3) { offset += 3 * geo.getTexCoordSetCount(); } if ((vformat & GeometryArray.COLOR_3) == GeometryArray.COLOR_3) { offset += 3; } else if ((vformat & GeometryArray.COLOR_4) == GeometryArray.COLOR_4){ offset += 4; } return offset; }
int getInterleavedStride(GeometryArray geo) { int offset = 3; // Add 3 for vertices int vformat = geo.getVertexFormat(); if ((vformat & GeometryArray.COLOR_3) == GeometryArray.COLOR_3) { offset += 3; } else if ((vformat & GeometryArray.COLOR_4) == GeometryArray.COLOR_4){ offset += 4; } if ((vformat & GeometryArray.NORMALS) != 0) offset += 3; if ((vformat & GeometryArray.TEXTURE_COORDINATE_2) == GeometryArray.TEXTURE_COORDINATE_2) { offset += 2 * geo.getTexCoordSetCount(); } else if ((vformat & GeometryArray.TEXTURE_COORDINATE_3) == GeometryArray.TEXTURE_COORDINATE_3) { offset += 3 * geo.getTexCoordSetCount(); } return offset; }
/******************** Helper methods ***************************************/ int getInterleavedVertexOffset(GeometryArray geo) { int offset = 0; int vformat = geo.getVertexFormat(); if ((vformat & GeometryArray.COLOR_3) == GeometryArray.COLOR_3) { offset += 3; } else if ((vformat & GeometryArray.COLOR_4) == GeometryArray.COLOR_4){ offset += 4; } if ((vformat & GeometryArray.NORMALS) != 0) offset += 3; if ((vformat & GeometryArray.TEXTURE_COORDINATE_2) == GeometryArray.TEXTURE_COORDINATE_2) { offset += 2 * geo.getTexCoordSetCount(); } else if ((vformat & GeometryArray.TEXTURE_COORDINATE_3) == GeometryArray.TEXTURE_COORDINATE_3) { offset += 3 * geo.getTexCoordSetCount(); } return offset; }
@Override protected void writeConstructorParams( DataOutput out ) throws IOException { vertexCount = ((GeometryArray)node).getVertexCount(); vertexFormat = ((GeometryArray)node).getVertexFormat(); texCoordSetCount = ((GeometryArray)node).getTexCoordSetCount(); texCoordSetMap = new int[ ((GeometryArray)node).getTexCoordSetMapLength() ]; ((GeometryArray)node).getTexCoordSetMap( texCoordSetMap ); out.writeInt(vertexCount); out.writeInt(vertexFormat); out.writeInt( texCoordSetCount ); out.writeInt( texCoordSetMap.length ); for(int i=0; i<texCoordSetMap.length; i++) out.writeInt( texCoordSetMap[i] ); super.writeConstructorParams( out ); }
int getInterleavedVertexOffset(GeometryArray geo) { int offset = 0; int vformat = geo.getVertexFormat(); if ((vformat & GeometryArray.COLOR_3) == GeometryArray.COLOR_3) { offset += 3; } else if ((vformat & GeometryArray.COLOR_4) == GeometryArray.COLOR_4){ offset += 4; } if ((vformat & GeometryArray.NORMALS) != 0) offset += 3; if ((vformat & GeometryArray.TEXTURE_COORDINATE_2) == GeometryArray.TEXTURE_COORDINATE_2) { offset += 2 * geo.getTexCoordSetCount(); } else if ((vformat & GeometryArray.TEXTURE_COORDINATE_3) == GeometryArray.TEXTURE_COORDINATE_3) { offset += 3 * geo.getTexCoordSetCount(); } return offset; }
int getInterleavedStride(GeometryArray geo) { int offset = 3; // Add 3 for vertices int vformat = geo.getVertexFormat(); if ((vformat & GeometryArray.COLOR_3) == GeometryArray.COLOR_3) { offset += 3; } else if ((vformat & GeometryArray.COLOR_4) == GeometryArray.COLOR_4){ offset += 4; } if ((vformat & GeometryArray.NORMALS) != 0) offset += 3; if ((vformat & GeometryArray.TEXTURE_COORDINATE_2) == GeometryArray.TEXTURE_COORDINATE_2) { offset += 2 * geo.getTexCoordSetCount(); } else if ((vformat & GeometryArray.TEXTURE_COORDINATE_3) == GeometryArray.TEXTURE_COORDINATE_3) { offset += 3 * geo.getTexCoordSetCount(); } return offset; }
/** * Constructor * @param intersectionInfo The IntersectionInfo this intersection is part of. */ public PickIntersection (Transform3D localToVWorld, PickInfo.IntersectionInfo intersectionInfo) { // Should check and throw NPE if the following is null. // localToVWorld can't be null. l2vw = localToVWorld; // intersectionInfo can't be null. iInfo = intersectionInfo; // geometry can't be null. geometry = iInfo.getGeometry(); pointCoordinates = iInfo.getIntersectionPoint(); distance = iInfo.getDistance(); primitiveVertexIndices = iInfo.getVertexIndices(); if (geometry instanceof GeometryArray) { int vertexFormat = ((GeometryArray)geometry).getVertexFormat(); hasColors = (0 != (vertexFormat & (GeometryArray.COLOR_3 | GeometryArray.COLOR_4))); hasNormals = (0 != (vertexFormat & GeometryArray.NORMALS)); hasTexCoords = (0 != (vertexFormat & (GeometryArray.TEXTURE_COORDINATE_2 | GeometryArray.TEXTURE_COORDINATE_3))); if (geometry instanceof IndexedGeometryArray) { geometryIsIndexed = true; } } }
public void recalculateNormals(final GeometryArray ga) { if (ga == null) return; if ((ga.getVertexFormat() & GeometryArray.NORMALS) == 0) return; changed = true; final GeometryInfo gi = new GeometryInfo(ga); final NormalGenerator ng = new NormalGenerator(); ng.generateNormals(gi); final GeometryArray tmp = gi.getGeometryArray(); final int v = ga.getValidVertexCount(); final float[] normals = new float[3 * v]; tmp.getNormals(0, normals); ga.setNormals(0, normals); }
this.vertexComponents = getVertexComponents(ga.getVertexFormat()) ;
primitiveNormals = new Vector3f[primitiveVertexIndices.length]; int[] indices = getPrimitiveNormalIndices(); int vformat = geom.getVertexFormat(); int val;
primitiveCoordinates = new Point3d[primitiveVertexIndices.length]; int[] indices = getPrimitiveCoordinateIndices(); int vformat = geom.getVertexFormat(); int val;
a.setTexture(p.t); if ((((GeometryArray)shape.getGeometry()).getVertexFormat() & GeometryArray.TEXTURE_COORDINATE_2) == 0) { TexCoordGeneration tcg = new TexCoordGeneration();
primitiveNormals = new Vector3f[primitiveVertexIndices.length]; int[] indices = getPrimitiveNormalIndices(); int vformat = geom.getVertexFormat(); int val;
primitiveCoordinates = new Point3d[primitiveVertexIndices.length]; int[] indices = getPrimitiveCoordinateIndices(); int vformat = geom.getVertexFormat(); int val;
int vformat = geom.getVertexFormat(); int val;