controlP5

## Class Knob

- java.lang.Object
- - controlP5.Controller<Knob>
  - - controlP5.Knob

- All Implemented Interfaces:
    CDrawable, ControllerInterface<Knob>, ControlP5Constants

      public class Knob
      extends Controller<Knob>

  A knob is a circular slider which can be used with a limited and unlimited range. Knobs come in 3 designs LINE, ARC and ELLIPSE and can be controller with both the mouse and the mouse wheel.
  +Example
    `

        /**
        * ControlP5 Knob
        *
        *
        * find a list of public methods available for the Knob Controller
        * at the bottom of this sketch.
        *
        * by Andreas Schlegel, 2012
        * www.sojamo.de/libraries/controlp5
        *
        */

        import controlP5.*;

        ControlP5 cp5;

        int myColorBackground = color(0,0,0);
        int knobValue = 100;

        Knob myKnobA;
        Knob myKnobB;

        void setup() {
          size(700,400);
          smooth();
          noStroke();

          cp5 = new ControlP5(this);

          myKnobA = cp5.addKnob("knob")
                       .setRange(0,255)
                       .setValue(50)
                       .setPosition(100,70)
                       .setRadius(50)
                       .setDragDirection(Knob.VERTICAL)
                       ;

          myKnobB = cp5.addKnob("knobValue")
                       .setRange(0,255)
                       .setValue(220)
                       .setPosition(100,210)
                       .setRadius(50)
                       .setNumberOfTickMarks(10)
                       .setTickMarkLength(4)
                       .snapToTickMarks(true)
                       .setColorForeground(color(255))
                       .setColorBackground(color(0, 160, 100))
                       .setColorActive(color(255,255,0))
                       .setDragDirection(Knob.HORIZONTAL)
                       ;
        }

        void draw() {
          background(myColorBackground);
          fill(knobValue);
          rect(0,height/2,width,height/2);
          fill(0,100);
          rect(80,40,140,320);
        }

        void knob(int theValue) {
          myColorBackground = color(theValue);
          println("a knob event. setting background to "+theValue);
        }

        void keyPressed() {
          switch(key) {
            case('1'):myKnobA.setValue(180);break;
            case('2'):myKnobB.setConstrained(false).hideTickMarks().snapToTickMarks(false);break;
            case('3'):myKnobA.shuffle();myKnobB.shuffle();break;
          }

        }

        /*
        a list of all methods available for the Knob Controller
        use ControlP5.printPublicMethodsFor(Knob.class);
        to print the following list into the console.

        You can find further details about class Knob in the javadoc.

        Format:
        ClassName : returnType methodName(parameter type)

        controlP5.Controller : CColor getColor()
        controlP5.Controller : ControlBehavior getBehavior()
        controlP5.Controller : ControlWindow getControlWindow()
        controlP5.Controller : ControlWindow getWindow()
        controlP5.Controller : ControllerProperty getProperty(String)
        controlP5.Controller : ControllerProperty getProperty(String, String)
        controlP5.Controller : ControllerView getView()
        controlP5.Controller : Knob addCallback(CallbackListener)
        controlP5.Controller : Knob addListener(ControlListener)
        controlP5.Controller : Knob addListenerFor(int, CallbackListener)
        controlP5.Controller : Knob align(int, int, int, int)
        controlP5.Controller : Knob bringToFront()
        controlP5.Controller : Knob bringToFront(ControllerInterface)
        controlP5.Controller : Knob hide()
        controlP5.Controller : Knob linebreak()
        controlP5.Controller : Knob listen(boolean)
        controlP5.Controller : Knob lock()
        controlP5.Controller : Knob onChange(CallbackListener)
        controlP5.Controller : Knob onClick(CallbackListener)
        controlP5.Controller : Knob onDoublePress(CallbackListener)
        controlP5.Controller : Knob onDrag(CallbackListener)
        controlP5.Controller : Knob onDraw(ControllerView)
        controlP5.Controller : Knob onEndDrag(CallbackListener)
        controlP5.Controller : Knob onEnter(CallbackListener)
        controlP5.Controller : Knob onLeave(CallbackListener)
        controlP5.Controller : Knob onMove(CallbackListener)
        controlP5.Controller : Knob onPress(CallbackListener)
        controlP5.Controller : Knob onRelease(CallbackListener)
        controlP5.Controller : Knob onReleaseOutside(CallbackListener)
        controlP5.Controller : Knob onStartDrag(CallbackListener)
        controlP5.Controller : Knob onWheel(CallbackListener)
        controlP5.Controller : Knob plugTo(Object)
        controlP5.Controller : Knob plugTo(Object, String)
        controlP5.Controller : Knob plugTo(Object[])
        controlP5.Controller : Knob plugTo(Object[], String)
        controlP5.Controller : Knob registerProperty(String)
        controlP5.Controller : Knob registerProperty(String, String)
        controlP5.Controller : Knob registerTooltip(String)
        controlP5.Controller : Knob removeBehavior()
        controlP5.Controller : Knob removeCallback()
        controlP5.Controller : Knob removeCallback(CallbackListener)
        controlP5.Controller : Knob removeListener(ControlListener)
        controlP5.Controller : Knob removeListenerFor(int, CallbackListener)
        controlP5.Controller : Knob removeListenersFor(int)
        controlP5.Controller : Knob removeProperty(String)
        controlP5.Controller : Knob removeProperty(String, String)
        controlP5.Controller : Knob setArrayValue(float[])
        controlP5.Controller : Knob setArrayValue(int, float)
        controlP5.Controller : Knob setBehavior(ControlBehavior)
        controlP5.Controller : Knob setBroadcast(boolean)
        controlP5.Controller : Knob setCaptionLabel(String)
        controlP5.Controller : Knob setColor(CColor)
        controlP5.Controller : Knob setColorActive(int)
        controlP5.Controller : Knob setColorBackground(int)
        controlP5.Controller : Knob setColorCaptionLabel(int)
        controlP5.Controller : Knob setColorForeground(int)
        controlP5.Controller : Knob setColorLabel(int)
        controlP5.Controller : Knob setColorValue(int)
        controlP5.Controller : Knob setColorValueLabel(int)
        controlP5.Controller : Knob setDecimalPrecision(int)
        controlP5.Controller : Knob setDefaultValue(float)
        controlP5.Controller : Knob setHeight(int)
        controlP5.Controller : Knob setId(int)
        controlP5.Controller : Knob setImage(PImage)
        controlP5.Controller : Knob setImage(PImage, int)
        controlP5.Controller : Knob setImages(PImage, PImage, PImage)
        controlP5.Controller : Knob setImages(PImage, PImage, PImage, PImage)
        controlP5.Controller : Knob setLabel(String)
        controlP5.Controller : Knob setLabelVisible(boolean)
        controlP5.Controller : Knob setLock(boolean)
        controlP5.Controller : Knob setMax(float)
        controlP5.Controller : Knob setMin(float)
        controlP5.Controller : Knob setMouseOver(boolean)
        controlP5.Controller : Knob setMoveable(boolean)
        controlP5.Controller : Knob setPosition(float, float)
        controlP5.Controller : Knob setPosition(float[])
        controlP5.Controller : Knob setSize(PImage)
        controlP5.Controller : Knob setSize(int, int)
        controlP5.Controller : Knob setStringValue(String)
        controlP5.Controller : Knob setUpdate(boolean)
        controlP5.Controller : Knob setValue(float)
        controlP5.Controller : Knob setValueLabel(String)
        controlP5.Controller : Knob setValueSelf(float)
        controlP5.Controller : Knob setView(ControllerView)
        controlP5.Controller : Knob setVisible(boolean)
        controlP5.Controller : Knob setWidth(int)
        controlP5.Controller : Knob show()
        controlP5.Controller : Knob unlock()
        controlP5.Controller : Knob unplugFrom(Object)
        controlP5.Controller : Knob unplugFrom(Object[])
        controlP5.Controller : Knob unregisterTooltip()
        controlP5.Controller : Knob update()
        controlP5.Controller : Knob updateSize()
        controlP5.Controller : Label getCaptionLabel()
        controlP5.Controller : Label getValueLabel()
        controlP5.Controller : List getControllerPlugList()
        controlP5.Controller : Pointer getPointer()
        controlP5.Controller : String getAddress()
        controlP5.Controller : String getInfo()
        controlP5.Controller : String getName()
        controlP5.Controller : String getStringValue()
        controlP5.Controller : String toString()
        controlP5.Controller : Tab getTab()
        controlP5.Controller : boolean isActive()
        controlP5.Controller : boolean isBroadcast()
        controlP5.Controller : boolean isInside()
        controlP5.Controller : boolean isLabelVisible()
        controlP5.Controller : boolean isListening()
        controlP5.Controller : boolean isLock()
        controlP5.Controller : boolean isMouseOver()
        controlP5.Controller : boolean isMousePressed()
        controlP5.Controller : boolean isMoveable()
        controlP5.Controller : boolean isUpdate()
        controlP5.Controller : boolean isVisible()
        controlP5.Controller : float getArrayValue(int)
        controlP5.Controller : float getDefaultValue()
        controlP5.Controller : float getMax()
        controlP5.Controller : float getMin()
        controlP5.Controller : float getValue()
        controlP5.Controller : float[] getAbsolutePosition()
        controlP5.Controller : float[] getArrayValue()
        controlP5.Controller : float[] getPosition()
        controlP5.Controller : int getDecimalPrecision()
        controlP5.Controller : int getHeight()
        controlP5.Controller : int getId()
        controlP5.Controller : int getWidth()
        controlP5.Controller : int listenerSize()
        controlP5.Controller : void remove()
        controlP5.Controller : void setView(ControllerView, int)
        controlP5.Knob : Knob hideTickMarks()
        controlP5.Knob : Knob setAngleRange(float)
        controlP5.Knob : Knob setConstrained(boolean)
        controlP5.Knob : Knob setDragDirection(int)
        controlP5.Knob : Knob setMax(float)
        controlP5.Knob : Knob setMin(float)
        controlP5.Knob : Knob setNumberOfTickMarks(int)
        controlP5.Knob : Knob setRadius(float)
        controlP5.Knob : Knob setRange(float, float)
        controlP5.Knob : Knob setResolution(float)
        controlP5.Knob : Knob setScrollSensitivity(float)
        controlP5.Knob : Knob setShowAngleRange(boolean)
        controlP5.Knob : Knob setSize(int, int)
        controlP5.Knob : Knob setStartAngle(float)
        controlP5.Knob : Knob setTickMarkLength(int)
        controlP5.Knob : Knob setTickMarkWeight(float)
        controlP5.Knob : Knob setValue(float)
        controlP5.Knob : Knob setViewStyle(int)
        controlP5.Knob : Knob showTickMarks()
        controlP5.Knob : Knob shuffle()
        controlP5.Knob : Knob snapToTickMarks(boolean)
        controlP5.Knob : boolean isConstrained()
        controlP5.Knob : boolean isShowAngleRange()
        controlP5.Knob : boolean isShowTickMarks()
        controlP5.Knob : float getAngle()
        controlP5.Knob : float getAngleRange()
        controlP5.Knob : float getRadius()
        controlP5.Knob : float getResolution()
        controlP5.Knob : float getStartAngle()
        controlP5.Knob : float getTickMarkWeight()
        controlP5.Knob : float getValue()
        controlP5.Knob : int getDragDirection()
        controlP5.Knob : int getNumberOfTickMarks()
        controlP5.Knob : int getTickMarkLength()
        controlP5.Knob : int getViewStyle()
        java.lang.Object : String toString()
        java.lang.Object : boolean equals(Object)

        created: 2015/03/24 12:21:10

        */

    `

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `autoHeight`
    `static int` | `autoWidth`

    - ### Fields inherited from interface controlP5.ControlP5Constants

      `acceptClassList, ACTION_BROADCAST, ACTION_CLICK, ACTION_DOUBLE_PRESS, ACTION_DRAG, ACTION_END_DRAG, ACTION_ENTER, ACTION_EXIT, ACTION_LEAVE, ACTION_MOVE, ACTION_PRESS, ACTION_PRESSED, ACTION_RELEASE, ACTION_RELEASE_OUTSIDE, ACTION_RELEASED, ACTION_RELEASEDOUTSIDE, ACTION_START_DRAG, ACTION_WHEEL, ACTIVE, ALL, ALT, AQUA, ARC, ARRAY, BACKSPACE, BASELINE, BITFONT, BLACK, BLUE, BOOLEAN, BOTTOM, BOTTOM_OUTSIDE, CAPTIONLABEL, CENTER, CHECKBOX, COMMANDKEY, CONTROL, controlEventClass, CUSTOM, DECREASE, DEFAULT, DELETE, delimiter, DONE, DOWN, DROPDOWN, ELLIPSE, ENTER, ESCAPE, EVENT, eventMethod, FADEIN, FADEOUT, FIELD, FLOAT, FUCHSIA, GRAY, GREEN, grixel, HALF_PI, HIDE, HIGHLIGHT, HORIZONTAL, IDLE, IMAGE, INACTIVE, INCREASE, INTEGER, INVALID, J2D, JSON, KEYCONTROL, LEFT, LEFT_OUTSIDE, LIME, LINE, LIST, LOAD, MAROON, MENU, METHOD, MOVE, MULTI, MULTIPLES, NAVY, OLIVE, ORANGE, OVER, P2D, P3D, pathdelimiter, PI, PRESS, PRESSED, PRINT, PURPLE, RED, RELEASE, RELEASED, RESET, RIGHT, RIGHT_OUTSIDE, SAVE, SERIALIZED, SHIFT, SILVER, SINGLE, SINGLE_COLUMN, SINGLE_ROW, SPRITE, standard56, standard58, STRING, SWITCH, SWITCH_BACK, SWITCH_FORE, synt24, TAB, TEAL, THEME_A, THEME_CP52014, THEME_CP5BLUE, THEME_GREY, THEME_RED, THEME_RETRO, TOP, TOP_OUTSIDE, TRANSITION_WAIT_FADEIN, TREE, TWO_PI, UP, VALUELABEL, VERBOSE, VERTICAL, WAIT, WHITE, YELLOW`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Knob(ControlP5 theControlP5, ControllerGroup<?> theParent, java.lang.String theName, float theMin, float theMax, float theDefaultValue, int theX, int theY, int theWidth)`
    `Knob(ControlP5 theControlP5, java.lang.String theName)` Convenience constructor to extend Knob.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `float` | `getAngle()`
    `float` | `getAngleRange()`
    `int` | `getDragDirection()` Gets the drag direction which is either Controller.HORIZONTAL or Controller.VERTICAL.
    `int` | `getNumberOfTickMarks()`
    `float` | `getRadius()`
    `float` | `getResolution()`
    `float` | `getStartAngle()` get the start angle, 0 is at 3 o'clock.
    `int` | `getTickMarkLength()`
    `float` | `getTickMarkWeight()`
    `float` | `getValue()`
    `int` | `getViewStyle()`
    `Knob` | `hideTickMarks()`
    `boolean` | `isConstrained()`
    `boolean` | `isShowAngleRange()`
    `boolean` | `isShowTickMarks()`
    `void` | `mousePressed()`
    `void` | `mouseReleasedOutside()`
    `Knob` | `scrolled(int theRotationValue)` Changes the value of the knob when hovering and using the mouse wheel or the scroll function of a multi-touch track pad.
    `Knob` | `setAngleRange(float theRange)` set the range in between which the know operates.
    `Knob` | `setConstrained(boolean theValue)`
    `Knob` | `setDragDirection(int theValue)` Sets the drag direction, when controlling a knob, parameter is either Controller.HORIZONTAL or Controller.VERTICAL.
    `Knob` | `setMax(float theValue)` sets the maximum value of the Controller.
    `Knob` | `setMin(float theValue)` sets the minimum value of the Controller.
    `Knob` | `setNumberOfTickMarks(int theNumber)`
    `Knob` | `setRadius(float theValue)`
    `Knob` | `setRange(float theMin, float theMax)`
    `Knob` | `setResolution(float theValue)` resolution is a sensitivity value when dragging a knob.
    `Knob` | `setScrollSensitivity(float theValue)` Sets the sensitivity for the scroll behavior when using the mouse wheel or the scroll function of a multi-touch track pad.
    `Knob` | `setShowAngleRange(boolean theValue)`
    `Knob` | `setSize(int theWidth, int theHeight)`
    `Knob` | `setStartAngle(float theAngle)` The start angle is a value between 0 and TWO_PI.
    `Knob` | `setTickMarkLength(int theLength)`
    `Knob` | `setTickMarkWeight(float theWeight)`
    `Knob` | `setValue(float theValue)`
    `Knob` | `setViewStyle(int theStyle)` set the display style of a knob.
    `Knob` | `showTickMarks()`
    `Knob` | `shuffle()` Assigns a random value to the controller.
    `Knob` | `snapToTickMarks(boolean theFlag)`
    `Knob` | `update()` updates the value of the controller without having to set the value explicitly.
    `Knob` | `updateDisplayMode(int theMode)`
    `Knob` | `updateInternalEvents(processing.core.PApplet theApplet)` a method for putting input events like e.g.

    - ### Methods inherited from class controlP5.Controller

      `add, addCallback, addListener, addListenerFor, align, bringToFront, bringToFront, changeValue, continuousUpdateEvents, draw, getAbsolutePosition, getAddress, getArrayValue, getArrayValue, getBehavior, getCaptionLabel, getColor, getControllerPlugList, getControlWindow, getDecimalPrecision, getDefaultValue, getHeight, getId, getInfo, getLabel, getMax, getMin, getName, getParent, getPickingColor, getPointer, getPosition, getProperty, getProperty, getStringValue, getTab, getValueLabel, getView, getWidth, getWindow, hide, init, isActive, isBroadcast, isInside, isLabelVisible, isListening, isLock, isMouseOver, isMousePressed, isMoveable, isUpdate, isUserInteraction, isVisible, keyEvent, linebreak, listen, listenerSize, lock, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, onChange, onClick, onDoublePress, onDrag, onDraw, onEndDrag, onEnter, onLeave, onMove, onPress, onRelease, onReleaseOutside, onStartDrag, onWheel, plugTo, plugTo, plugTo, plugTo, registerProperty, registerProperty, registerTooltip, remove, remove, removeBehavior, removeCallback, removeCallback, removeListener, removeListenerFor, removeListenersFor, removeProperty, removeProperty, set, setAbsolutePosition, setAddress, setArrayValue, setArrayValue, setBehavior, setBroadcast, setCaptionLabel, setColor, setColorActive, setColorBackground, setColorCaptionLabel, setColorForeground, setColorLabel, setColorValue, setColorValueLabel, setDecimalPrecision, setDefaultValue, setFont, setFont, setGroup, setGroup, setHeight, setId, setImage, setImage, setImages, setImages, setImages, setLabel, setLabelVisible, setLock, setMouseOver, setMousePressed, setMoveable, setParent, setPosition, setPosition, setSize, setStringValue, setTab, setTab, setUpdate, setUserInteraction, setValueLabel, setValueSelf, setView, setView, setVisible, setWidth, show, toString, unlock, unplugFrom, unplugFrom, unregisterTooltip, updateAbsolutePosition, updateEvents, updateSize, x, y`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### autoHeight

          public static int autoHeight

    - #### autoWidth

          public static int autoWidth

  - ### Constructor Detail

    - #### Knob

          public Knob(ControlP5 theControlP5,
                      ControllerGroup<?> theParent,
                      java.lang.String theName,
                      float theMin,
                      float theMax,
                      float theDefaultValue,
                      int theX,
                      int theY,
                      int theWidth)

    - #### Knob

          public Knob(ControlP5 theControlP5,
                      java.lang.String theName)

      Convenience constructor to extend Knob.
      Parameters:
        `theControlP5` -
        `theName` -
      +Example
        `

            /**
             * ControlP5 extending Controllers
             *
             * the following example shows how to extend the Controller class to
             * create customizable Controllers. You can either extend the Controller class itself,
             * or any class that extends Controller itself like the Slider, Button, DropdownList, etc.
             *
             * How to:
             *
             * 1) do a super call to the convenience constructor requiring
             * 2 parameter (ControlP5 instance, name)
             *
             * 2) the Controller class has a set of empty methods that allow you to capture
             * inputs from the mouse including
             * onEnter(), onLeave(), onPress(), onRelease(), onClick(), onScroll(int), onDrag()
             * These you can override and include functionality as needed.
             *
             * 3) use method getPointer() to return the local (relative)
             * xy-coordinates of the controller
             *
             * 4) after instantiation custom controllers are treated the same
             * as default controlP5 controllers.
             *
             * by Andreas Schlegel, 2012
             * www.sojamo.de/libraries/controlp5
             *
             */

            import controlP5.*;

            ControlP5 cp5;
            PApplet p;

            void setup() {
              size(400, 400);
              cp5 = new ControlP5(this);

              // create 2 groups to show nesting of custom controllers and
              //
              Group g1 = cp5.addGroup("a").setPosition(0,100).setWidth(180);
              Group g2 = cp5.addGroup("b").setPosition(0,10).setWidth(180);
              g2.moveTo(g1);

              // create 2 custom Controllers from class MyButton
              // MyButton extends Controller and inherits all methods accordingly.
              new MyButton(cp5, "b1").setPosition(0, 0).setSize(180, 200).moveTo(g2);
              new MyButton(cp5, "b2").setPosition(205, 15).setSize(180, 200);

            }

            void draw() {
              background(0);
            }

            // b1 will be called from Controller b1
            public void b1(float theValue) {
              println("yay button "+theValue);
            }

            public void controlEvent(ControlEvent theEvent) {
              println("controlEvent : "+theEvent);
            }

            // Create a custom Controller, please not that
            // MyButton extends Controller,
            // is an indicator for the super class about the type of
            // custom controller to be created.

            class MyButton extends Controller {

              int current = 0xffff0000;

              float a = 128;

              float na;

              int y;

              // use the convenience constructor of super class Controller
              // MyButton will automatically registered and move to the
              // default controlP5 tab.

              MyButton(ControlP5 cp5, String theName) {
                super(cp5, theName);

                // replace the default view with a custom view.
                setView(new ControllerView() {
                  public void display(PGraphics p, Object b) {
                    // draw button background
                    na += (a-na) * 0.1;
                    p.fill(current,na);
                    p.rect(0, 0, getWidth(), getHeight());

                    // draw horizontal line which can be moved on the x-axis
                    // using the scroll wheel.
                    p.fill(0,255,0);
                    p.rect(0,y,width,10);

                    // draw the custom label
                    p.fill(128);
                    translate(0,getHeight()+14);
                    p.text(getName(),0,0);
                    p.text(getName(),0,0);

                  }
                }
                );
              }

              // override various input methods for mouse input control
              void onEnter() {
                cursor(HAND);
                println("enter");
                a = 255;
              }

              void onScroll(int n) {
                println("scrolling");
                y -= n;
                y = constrain(y,0,getHeight()-10);
              }

              void onPress() {
                println("press");
                current = 0xffffff00;
              }

              void onClick() {
                Pointer p1 = getPointer();
                println("clicked at "+p1.x()+", "+p1.y());
                current = 0xffffff00;
                setValue(y);
              }

              void onRelease() {
                println("release");
                current = 0xffffffff;
              }

              void onMove() {
                println("moving "+this+" "+_myControlWindow.getMouseOverList());
              }

              void onDrag() {
                current = 0xff0000ff;
                Pointer p1 = getPointer();
                float dif = dist(p1.px(),p1.py(),p1.x(),p1.y());
                println("dragging at "+p1.x()+", "+p1.y()+" "+dif);
              }

              void onReleaseOutside() {
                onLeave();
              }

              void onLeave() {
                println("leave");
                cursor(ARROW);
                a = 128;
              }
            }

        `

  - ### Method Detail

    - #### getAngle

          public float getAngle()

    - #### getAngleRange

          public float getAngleRange()

    - #### getDragDirection

          public int getDragDirection()

      Gets the drag direction which is either Controller.HORIZONTAL or Controller.VERTICAL.
      Returns:
        int returns Controller.HORIZONTAL or Controller.VERTICAL

    - #### getNumberOfTickMarks

          public int getNumberOfTickMarks()

    - #### getRadius

          public float getRadius()

    - #### getResolution

          public float getResolution()

    - #### getStartAngle

          public float getStartAngle()

      get the start angle, 0 is at 3 o'clock.

    - #### getTickMarkLength

          public int getTickMarkLength()

    - #### getTickMarkWeight

          public float getTickMarkWeight()

    - #### getValue

          public float getValue()

      Specified by:
        `getValue` in interface `ControllerInterface<Knob>`
      Overrides:
        `getValue` in class `Controller<Knob>`
      Returns:
        float
      See Also:
        `Controller.getStringValue()`, `Controller.getArrayValue()`

    - #### getViewStyle

          public int getViewStyle()

    - #### hideTickMarks

          public Knob hideTickMarks()

    - #### isConstrained

          public boolean isConstrained()

    - #### isShowAngleRange

          public boolean isShowAngleRange()

    - #### isShowTickMarks

          public boolean isShowTickMarks()

    - #### mousePressed

          public void mousePressed()

    - #### mouseReleasedOutside

          public void mouseReleasedOutside()

    - #### scrolled

          public Knob scrolled(int theRotationValue)

      Changes the value of the knob when hovering and using the mouse wheel or the scroll function of a multi-touch track pad.

    - #### setAngleRange

          public Knob setAngleRange(float theRange)

      set the range in between which the know operates. By default the range is PI + HALF_PI

    - #### setConstrained

          public Knob setConstrained(boolean theValue)

    - #### setDragDirection

          public Knob setDragDirection(int theValue)

      Sets the drag direction, when controlling a knob, parameter is either Controller.HORIZONTAL or Controller.VERTICAL.
      Parameters:
        `theValue` - must be Controller.HORIZONTAL or Controller.VERTICAL
      Returns:
        Knob

    - #### setMax

          public Knob setMax(float theValue)

      Description copied from class: `Controller`
      sets the maximum value of the Controller.
      Overrides:
        `setMax` in class `Controller<Knob>`
      Parameters:
        `theValue` - float
      Returns:
        Controller

    - #### setMin

          public Knob setMin(float theValue)

      Description copied from class: `Controller`
      sets the minimum value of the Controller.
      Overrides:
        `setMin` in class `Controller<Knob>`
      Parameters:
        `theValue` - float
      Returns:
        Controller

    - #### setNumberOfTickMarks

          public Knob setNumberOfTickMarks(int theNumber)

    - #### setRadius

          public Knob setRadius(float theValue)

    - #### setRange

          public Knob setRange(float theMin,
                               float theMax)

    - #### setResolution

          public Knob setResolution(float theValue)

      resolution is a sensitivity value when dragging a knob. the higher the value, the more sensitive the dragging.

    - #### setScrollSensitivity

          public Knob setScrollSensitivity(float theValue)

      Sets the sensitivity for the scroll behavior when using the mouse wheel or the scroll function of a multi-touch track pad. The smaller the value (closer to 0) the higher the sensitivity.
      Parameters:
        `theValue` -
      Returns:
        Knob

    - #### setShowAngleRange

          public Knob setShowAngleRange(boolean theValue)

    - #### setSize

          public Knob setSize(int theWidth,
                              int theHeight)

      Overrides:
        `setSize` in class `Controller<Knob>`
      Returns:
        Controller

    - #### setStartAngle

          public Knob setStartAngle(float theAngle)

      The start angle is a value between 0 and TWO_PI. By default the start angle is set to HALF_PI + PI * 0.25f

    - #### setTickMarkLength

          public Knob setTickMarkLength(int theLength)

    - #### setTickMarkWeight

          public Knob setTickMarkWeight(float theWeight)

    - #### setValue

          public Knob setValue(float theValue)

      Specified by:
        `setValue` in interface `ControllerInterface<Knob>`
      Overrides:
        `setValue` in class `Controller<Knob>`
      Parameters:
        `theValue` - float

    - #### setViewStyle

          public Knob setViewStyle(int theStyle)

      set the display style of a knob. takes parameters Knob.LINE, Knob.ELLIPSE or Knob.ARC. default style is Knob.LINE
      Parameters:
        `theStyle` - use Knob.LINE, Knob.ELLIPSE or Knob.ARC
      Returns:
        Knob

    - #### showTickMarks

          public Knob showTickMarks()

    - #### shuffle

          public Knob shuffle()

      Assigns a random value to the controller.

    - #### snapToTickMarks

          public Knob snapToTickMarks(boolean theFlag)

    - #### update

          public Knob update()

      Description copied from class: `Controller`
      updates the value of the controller without having to set the value explicitly. update does not visually update the controller. the updating status can be set with setUpdate(true/false) and checked with isUpdate().
      Specified by:
        `update` in interface `ControllerInterface<Knob>`
      Overrides:
        `update` in class `Controller<Knob>`
      Returns:
        Controller
      See Also:
        `Controller.setUpdate(boolean)`, `Controller.isUpdate()`

    - #### updateDisplayMode

          public Knob updateDisplayMode(int theMode)

    - #### updateInternalEvents

          public Knob updateInternalEvents(processing.core.PApplet theApplet)

      Description copied from interface: `ControllerInterface`
      a method for putting input events like e.g. mouse or keyboard events and queries. this has been taken out of the draw method for better overwriting capability.
      Specified by:
        `updateInternalEvents` in interface `ControllerInterface<Knob>`
      Overrides:
        `updateInternalEvents` in class `Controller<Knob>`
      See Also:
        `ControllerInterface.updateInternalEvents`

processing library controlP5 by Andreas Schlegel. (c) 2006-2016