package au.gov.ga.earthsci.model.geometry;
import au.gov.ga.earthsci.common.color.ColorMap;
/**
* An interface for geometries that use a {@link ColorMap} to provide colouring
* information rather than a texture or color map etc.
* <p/>
* For alternatives, see {@link IVertexColouredGeometry}.
* <p/>
* <b>Events</b>
* <dl>
* <dt>{@value #COLOR_MAP_EVENT_NAME}</dt>
* <dd>Issued when the colour map associated with this geometry change</dd>
* </dl>
*
* @author James Navin (james.navin@ga.gov.au)
*
*/
public interface IVertexColourMappedGeometry extends IModelGeometry
{
String COLOR_MAP_KEY = "au.gov.ga.earthsci.model.geometry.colormap"; //$NON-NLS-1$
String COLOR_MAP_EVENT_NAME = "colorMap"; //$NON-NLS-1$
/**
* @return The ColorMap to use for this geometry
*/
ColorMap getColorMap();
/**
* @return Whether a colour map exists on this geometry
*/
boolean hasColorMap();
/**
* @return The index of the axis to use for colouring ([x,y,z]->[0,1,2])
*/
int getColouredAxis();
/**
* @return <code>true</code> if the X axis is to be used for colouring
*
* @see #getColouredAxis()
*/
boolean isXColoured();
/**
* @return <code>true</code> if the X axis is to be used for colouring
*
* @see #getColouredAxis()
*/
boolean isYColoured();
/**
* @return <code>true</code> if the Z axis is to be used for colouring
*
* @see #getColouredAxis()
*/
boolean isZColoured();
}