package au.gov.ga.earthsci.model.core.render;
import org.eclipse.e4.core.di.annotations.Creatable;
import au.gov.ga.earthsci.model.geometry.IModelGeometry;
import au.gov.ga.earthsci.model.geometry.IVertexBasedGeometry;
import au.gov.ga.earthsci.model.render.IModelGeometryRenderer;
import au.gov.ga.earthsci.model.render.IModelGeometryRendererCreator;
import au.gov.ga.earthsci.worldwind.common.WorldWindowRegistry;
/**
* A {@link IModelGeometryRendererCreator} that creates instances of the
* {@link BasicRenderer}
*
* @author James Navin (james.navin@ga.gov.au)
*
*/
@Creatable
public class BasicRendererCreator implements IModelGeometryRendererCreator
{
@Override
public String getName()
{
return "Basic renderer";
}
@Override
public String getDescription()
{
return "A basic renderer that supports points, lines and surfaces";
}
@Override
public boolean supports(IModelGeometry geometry)
{
return geometry != null && geometry instanceof IVertexBasedGeometry;
}
@Override
public IModelGeometryRenderer createRenderer(IModelGeometry geometry) throws IllegalArgumentException
{
return new BasicRenderer((IVertexBasedGeometry) geometry, WorldWindowRegistry.INSTANCE);
}
}