code: int createGeometry(Geometry.Type geometry_type,
  			VertexDescription description) {
  		int newgeom = newGeometry_(geometry_type.value());
  		if (m_vertices == null) {
  			m_vertices_mp = new MultiPoint(description);
  			m_vertices = (MultiPointImpl) m_vertices_mp._getImpl();
  		} else
  			m_vertices_mp.mergeVertexDescription(description);
  
  		m_vertex_description = m_vertices_mp.getDescription();// this
  																// description
  																// will be a
  																// merge of
  																// existing
  																// description
  																// and the
  																// description
  																// of the
  																// multi_path
  		m_b_has_attributes = m_vertex_description.getAttributeCount() > 1;
  
  		if (m_first_geometry == -1) {
  			m_first_geometry = newgeom;
  			m_last_geometry = newgeom;
  		} else {
  			setPrevGeometry_(newgeom, m_last_geometry);
  			setNextGeometry_(m_last_geometry, newgeom);
  			m_last_geometry = newgeom;
  		}
  		return newgeom;
  	}
docs: create a new empty geometry of the given type and attribute set.