code: @Override
  	public void setXYZ(int index, Point3D pt) {
  		if (index < 0 || index >= getPointCount())
  			throw new IndexOutOfBoundsException();
  
  		addAttribute(Semantics.Z);
  
  		_verifyAllStreams();
  		notifyModified(DirtyFlags.DirtyCoordinates);
  		AttributeStreamOfDbl v = (AttributeStreamOfDbl) m_vertexAttributes[0];
  		v.write(index * 2, pt.x);
  		v.write(index * 2 + 1, pt.y);
  		m_vertexAttributes[1].writeAsDbl(index, pt.z);
  	}
docs: Checked vs. Jan 11, 2011