code: @Override
  	public void setAttribute(int semantics, int offset, int ordinate,
  			double value) {
  		if (offset < 0 || offset >= m_pointCount)
  			throw new IndexOutOfBoundsException();
  
  		int ncomps = VertexDescription.getComponentCount(semantics);
  		if (ordinate >= ncomps)
  			throw new IndexOutOfBoundsException();
  
  		addAttribute(semantics);
  		_verifyAllStreams();
  		int attributeIndex = m_description.getAttributeIndex(semantics);
  		notifyModified(DirtyFlags.DirtyCoordinates);
  		m_vertexAttributes[attributeIndex].writeAsDbl(offset * ncomps
  				+ ordinate, value);
  	}
docs: Checked vs. Jan 11, 2011