Vibration
Date: 2019-10-22

org.jmol.util

## Class Vibration

- java.lang.Object
- - javajs.util.T3
  - - javajs.util.V3
    - - org.jmol.util.Vibration

- All Implemented Interfaces:
    java.io.Serializable, javajs.api.JSONEncodable
  Direct Known Subclasses:
    ModulationSet

      public class Vibration
      extends javajs.util.V3

  A class to allow for more complex vibrations and associated phenomena, such as modulated crystals. In the case of modulations, ModulationSet extends Vibration and is implemented that way, and, as well, magnetic spin is also a form of Vibration that may have an associated ModulationSet, as indicated here
  Author:
    Bob Hanson hansonr@stolaf.edu
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `int` | `modDim` modDim will be > 0 for modulation
    `float` | `modScale`
    `boolean` | `showTrace`
    `private javajs.util.P3[]` | `trace`
    `int` | `tracePt`
    `protected static double` | `twoPI`
    `static int` | `TYPE_SPIN`
    `static int` | `TYPE_VIBRATION`

    - ### Fields inherited from class javajs.util.T3

      `x, y, z`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Vibration()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `javajs.util.P3[]` | `addTracePt(int n, Point3fi ptNew)`
    `java.lang.Object` | `clone()`
    `void` | `getInfo(java.util.Map<java.lang.String,java.lang.Object> info)`
    `int` | `getOccupancy100(boolean isTemp)`
    `boolean` | `isNonzero()`
    `javajs.util.T3` | `setCalcPoint(javajs.util.T3 pt, javajs.util.T3 t456, float scale, float modulationScale)`
    `Vibration` | `setType(int type)`
    `void` | `setXYZ(javajs.util.T3 vib)`
    `void` | `startTrace(int n)`

    - ### Methods inherited from class javajs.util.V3

      `angle, new3, newV, newVsub`

    - ### Methods inherited from class javajs.util.T3

      `add, add2, add3, ave, cross, distance, distanceSquared, dot, equals, floatToIntBits, hashCode, length, lengthSquared, normalize, scale, scaleAdd2, scaleT, set, setA, setT, sub, sub2, toJSON, toString`

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

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### twoPI

          protected static final double twoPI

      See Also:
        Constant Field Values

    - #### TYPE_VIBRATION

          public static final int TYPE_VIBRATION

      See Also:
        Constant Field Values

    - #### TYPE_SPIN

          public static final int TYPE_SPIN

      See Also:
        Constant Field Values

    - #### modDim

          public int modDim

      modDim will be > 0 for modulation

    - #### modScale

          public float modScale

    - #### showTrace

          public boolean showTrace

    - #### trace

          private javajs.util.P3[] trace

    - #### tracePt

          public int tracePt

  - ### Constructor Detail

    - #### Vibration

          public Vibration()

  - ### Method Detail

    - #### setCalcPoint

          public javajs.util.T3 setCalcPoint(javajs.util.T3 pt,
                                             javajs.util.T3 t456,
                                             float scale,
                                             float modulationScale)

      Parameters:
        `pt` -
        `t456` -
        `scale` -
        `modulationScale` -
      Returns:
        pt

    - #### getInfo

          public void getInfo(java.util.Map<java.lang.String,java.lang.Object> info)

    - #### clone

          public java.lang.Object clone()

      Overrides:
        `clone` in class `java.lang.Object`

    - #### setXYZ

          public void setXYZ(javajs.util.T3 vib)

    - #### setType

          public Vibration setType(int type)

    - #### isNonzero

          public boolean isNonzero()

    - #### getOccupancy100

          public int getOccupancy100(boolean isTemp)

      Parameters:
        `isTemp` - used only in ModulationSet
      Returns:
        Integer.MIN_VALUE if not applicable, occupancy if enabled, -occupancy if not enabled

    - #### startTrace

          public void startTrace(int n)

    - #### addTracePt

          public javajs.util.P3[] addTracePt(int n,
                                             Point3fi ptNew)