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;
	}
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 ; }
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.