code: public void setAttribute(int semantics, int ordinate, double value) {
  		_touch();
  		int ncomps = VertexDescription.getComponentCount(semantics);
  		if (ncomps < ordinate)
  			throw new IndexOutOfBoundsException();
  
  		int attributeIndex = m_description.getAttributeIndex(semantics);
  		if (attributeIndex < 0) {
  			addAttribute(semantics);
  			attributeIndex = m_description.getAttributeIndex(semantics);
  		}
  
  		if (m_attributes == null)
  			_setToDefault();
  
  		m_attributes[m_description._getPointAttributeOffset(attributeIndex)
  				+ ordinate] = value;
  	}
docs: Sets the value of the attribute.
  
  @param semantics
  The attribute semantics.
  @param ordinate
  The ordinate of the attribute.
  @param value
  Is the array to write values to. The attribute type and the
  number of elements must match the persistence type, as well as
  the number of components of the attribute.