/**
 * <copyright>
 *
 * Copyright (c) 2010 Metascape, LLC.
 * All rights reserved.   This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *   Metascape - Initial API and Implementation
 *
 * </copyright>
 *
 */

package org.eclipse.amp.agf;

import org.eclipse.core.runtime.IAdapterFactory;

/**
 * A marker interface for adapters which provide graphics adapters.
 * 
 * @author mparker
 * 
 */
public interface IGraphicsAdapterFactory extends IAdapterFactory {

}
