package net.mkonrad.synes.gui.elements.instruments;

import javax.media.j3d.BranchGroup;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Point3f;
import javax.vecmath.Vector3f;

import com.sun.j3d.utils.geometry.Primitive;

import net.mkonrad.synes.data.SynthObj;

public interface InstrumentShape
{
  public static final float SHAPE_WIDTH = 0.25f;
  
  public void setEnabled(boolean enabled);
  
  public SynthObj getSynthData();
  public void setSynthData(SynthObj synthData);
  
  public BranchGroup getBG();
  public TransformGroup getTG();
  
  public Primitive getPrimitive();
  
  public Vector3f getPos();
  public Vector3f getAbsPos();
  public void setPos(Point3f posVec);
  public void setPos(Vector3f posVec);
  
  public void rescale();
  public void turn(float rad);
  
  public void beat();
  public void beatUpdate();
}

