PointGroup
Date: 2019-10-22

org.jmol.symmetry

## Class PointGroup

- java.lang.Object
- - org.jmol.symmetry.PointGroup

-     class PointGroup
      extends java.lang.Object

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private class` | `PointGroup.Operation`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static int` | `ATOM_COUNT_MAX`
    `private int[]` | `atomMap`
    `private PointGroup.Operation[][]` | `axes`
    `private static int[]` | `axesMaxN`
    `private javajs.util.BS` | `bsAtoms`
    `private static int` | `c2`
    `private static int` | `c3`
    `private static int` | `c4`
    `private static int` | `c5`
    `private static int` | `c6`
    `private static int` | `c8`
    `private javajs.util.T3` | `center`
    `private int` | `centerAtomIndex`
    `private float` | `cosTolerance`
    `private float` | `distanceTolerance`
    `private float` | `distanceTolerance2`
    `private int` | `drawIndex`
    `(package private) java.lang.String` | `drawInfo`
    `private java.lang.String` | `drawType`
    `(package private) int[]` | `eCounts`
    `private int[]` | `elements`
    `private static int` | `firstProper`
    `private boolean` | `haveInversionCenter`
    `private boolean` | `haveVibration`
    `(package private) java.util.Map<java.lang.String,java.lang.Object>` | `info`
    `private boolean` | `isAtoms`
    `private CubeIterator` | `iter`
    `private float` | `linearTolerance`
    `private boolean` | `localEnvOnly`
    `private static int` | `maxAxis`
    `(package private) int` | `maxElement`
    `private java.lang.String` | `name`
    `private int` | `nAtoms`
    `private int[]` | `nAxes`
    `(package private) int` | `nOps`
    `private static int[]` | `nUnique`
    `(package private) static int` | `OPERATION_IMPROPER_AXIS`
    `(package private) static int` | `OPERATION_INVERSION_CENTER`
    `(package private) static int` | `OPERATION_PLANE`
    `(package private) static int` | `OPERATION_PROPER_AXIS`
    `private javajs.util.T3[]` | `points`
    `private PointGroup.Operation` | `principalAxis`
    `private PointGroup.Operation` | `principalPlane`
    `private float` | `radius`
    `private static int` | `s10`
    `private static int` | `s12`
    `private static int` | `s3`
    `private static int` | `s4`
    `private static int` | `s5`
    `private static int` | `s6`
    `private static int` | `s8`
    `private float` | `scale`
    `(package private) java.lang.String` | `textInfo`
    `(package private) static java.lang.String[]` | `typeNames`
    `private javajs.util.V3` | `vTemp`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `private` | `PointGroup()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `private void` | `addAxis(int iOrder, javajs.util.V3 v)`
    `private boolean` | `checkAxisOrder(int iOrder, javajs.util.V3 v, javajs.util.T3 center)`
    `private boolean` | `checkOperation(javajs.util.Quat q, javajs.util.T3 center, int iOrder)`
    `private void` | `findAdditionalAxes(int nPlanes)`
    `private int` | `findCAxes()`
    `private void` | `findInversionCenter()`
    `private int` | `findPlanes()`
    `private void` | `getAllAxes(javajs.util.V3 v3)`
    `private void` | `getElementCounts()`
    `private int` | `getHighestOrder()`
    `(package private) java.lang.Object` | `getInfo(int modelIndex, java.lang.String drawID, boolean asInfo, java.lang.String type, int index, float scaleFactor)`
    `(package private) java.lang.String` | `getName()`
    `private int` | `getPlane(javajs.util.V3 v3)`
    `(package private) static PointGroup` | `getPointGroup(PointGroup pgLast, javajs.util.T3 center, javajs.util.T3[] atomset, javajs.util.BS bsAtoms, boolean haveVibration, float distanceTolerance, float linearTolerance, boolean localEnvOnly)`
    `private int` | `getPointIndex(int j)`
    `private boolean` | `getPointsAndElements(javajs.util.T3[] atomset)`
    `private boolean` | `haveAxis(int iOrder, javajs.util.V3 v)`
    `(package private) boolean` | `isDrawType(java.lang.String type, int index, float scale)`
    `private boolean` | `isEqual(PointGroup pg)`
    `private boolean` | `isLinear(javajs.util.T3[] atoms)`
    `private boolean` | `isParallel(javajs.util.V3 v1, javajs.util.V3 v2)`
    `private boolean` | `isPerpendicular(javajs.util.V3 v1, javajs.util.V3 v2)`
    `private boolean` | `set(PointGroup pgLast, javajs.util.T3[] atomset)`
    `private PointGroup.Operation` | `setPrincipalAxis(int n, int nPlanes)`
    `private PointGroup.Operation` | `setPrincipalPlane(int n, int nPlanes)`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### axesMaxN

          private static final int[] axesMaxN

    - #### nUnique

          private static final int[] nUnique

    - #### s3

          private static final int s3

      See Also:
        Constant Field Values

    - #### s4

          private static final int s4

      See Also:
        Constant Field Values

    - #### s5

          private static final int s5

      See Also:
        Constant Field Values

    - #### s6

          private static final int s6

      See Also:
        Constant Field Values

    - #### s8

          private static final int s8

      See Also:
        Constant Field Values

    - #### s10

          private static final int s10

      See Also:
        Constant Field Values

    - #### s12

          private static final int s12

      See Also:
        Constant Field Values

    - #### firstProper

          private static final int firstProper

      See Also:
        Constant Field Values

    - #### c2

          private static final int c2

      See Also:
        Constant Field Values

    - #### c3

          private static final int c3

      See Also:
        Constant Field Values

    - #### c4

          private static final int c4

      See Also:
        Constant Field Values

    - #### c5

          private static final int c5

      See Also:
        Constant Field Values

    - #### c6

          private static final int c6

      See Also:
        Constant Field Values

    - #### c8

          private static final int c8

      See Also:
        Constant Field Values

    - #### maxAxis

          private static final int maxAxis

    - #### isAtoms

          private boolean isAtoms

    - #### drawInfo

          java.lang.String drawInfo

    - #### info

          java.util.Map<java.lang.String,java.lang.Object> info

    - #### textInfo

          java.lang.String textInfo

    - #### iter

          private CubeIterator iter

    - #### drawType

          private java.lang.String drawType

    - #### drawIndex

          private int drawIndex

    - #### scale

          private float scale

    - #### nAxes

          private int[] nAxes

    - #### axes

          private PointGroup.Operation[][] axes

    - #### nAtoms

          private int nAtoms

    - #### radius

          private float radius

    - #### distanceTolerance

          private float distanceTolerance

    - #### distanceTolerance2

          private float distanceTolerance2

    - #### linearTolerance

          private float linearTolerance

    - #### cosTolerance

          private float cosTolerance

    - #### name

          private java.lang.String name

    - #### principalAxis

          private PointGroup.Operation principalAxis

    - #### principalPlane

          private PointGroup.Operation principalPlane

    - #### vTemp

          private final javajs.util.V3 vTemp

    - #### centerAtomIndex

          private int centerAtomIndex

    - #### haveInversionCenter

          private boolean haveInversionCenter

    - #### center

          private javajs.util.T3 center

    - #### points

          private javajs.util.T3[] points

    - #### elements

          private int[] elements

    - #### atomMap

          private int[] atomMap

    - #### bsAtoms

          private javajs.util.BS bsAtoms

    - #### haveVibration

          private boolean haveVibration

    - #### localEnvOnly

          private boolean localEnvOnly

    - #### ATOM_COUNT_MAX

          private static final int ATOM_COUNT_MAX

      See Also:
        Constant Field Values

    - #### maxElement

          int maxElement

    - #### eCounts

          int[] eCounts

    - #### OPERATION_PLANE

          static final int OPERATION_PLANE

      See Also:
        Constant Field Values

    - #### OPERATION_PROPER_AXIS

          static final int OPERATION_PROPER_AXIS

      See Also:
        Constant Field Values

    - #### OPERATION_IMPROPER_AXIS

          static final int OPERATION_IMPROPER_AXIS

      See Also:
        Constant Field Values

    - #### OPERATION_INVERSION_CENTER

          static final int OPERATION_INVERSION_CENTER

      See Also:
        Constant Field Values

    - #### typeNames

          static final java.lang.String[] typeNames

    - #### nOps

          int nOps

  - ### Constructor Detail

    - #### PointGroup

          private PointGroup()

  - ### Method Detail

    - #### getName

          java.lang.String getName()

    - #### getPointGroup

          static PointGroup getPointGroup(PointGroup pgLast,
                                          javajs.util.T3 center,
                                          javajs.util.T3[] atomset,
                                          javajs.util.BS bsAtoms,
                                          boolean haveVibration,
                                          float distanceTolerance,
                                          float linearTolerance,
                                          boolean localEnvOnly)

      Parameters:
        `pgLast` -
        `center` -
        `atomset` - a list of Atom or other Point3fi that implements Node
        `bsAtoms` -
        `haveVibration` - if true, then all items in atomset must be Atom class
        `distanceTolerance` -
        `linearTolerance` -
        `localEnvOnly` -
      Returns:
        a PointGroup object, possibly the last calculated for efficiency

    - #### isEqual

          private boolean isEqual(PointGroup pg)

    - #### set

          private boolean set(PointGroup pgLast,
                              javajs.util.T3[] atomset)

    - #### setPrincipalAxis

          private PointGroup.Operation setPrincipalAxis(int n,
                                                        int nPlanes)

    - #### setPrincipalPlane

          private PointGroup.Operation setPrincipalPlane(int n,
                                                         int nPlanes)

    - #### getPointsAndElements

          private boolean getPointsAndElements(javajs.util.T3[] atomset)

    - #### findInversionCenter

          private void findInversionCenter()

    - #### checkOperation

          private boolean checkOperation(javajs.util.Quat q,
                                         javajs.util.T3 center,
                                         int iOrder)

    - #### getPointIndex

          private int getPointIndex(int j)

    - #### isLinear

          private boolean isLinear(javajs.util.T3[] atoms)

    - #### isParallel

          private boolean isParallel(javajs.util.V3 v1,
                                     javajs.util.V3 v2)

    - #### isPerpendicular

          private boolean isPerpendicular(javajs.util.V3 v1,
                                          javajs.util.V3 v2)

    - #### getElementCounts

          private void getElementCounts()

    - #### findCAxes

          private int findCAxes()

    - #### getAllAxes

          private void getAllAxes(javajs.util.V3 v3)

    - #### getHighestOrder

          private int getHighestOrder()

    - #### checkAxisOrder

          private boolean checkAxisOrder(int iOrder,
                                         javajs.util.V3 v,
                                         javajs.util.T3 center)

    - #### addAxis

          private void addAxis(int iOrder,
                               javajs.util.V3 v)

    - #### haveAxis

          private boolean haveAxis(int iOrder,
                                   javajs.util.V3 v)

    - #### findPlanes

          private int findPlanes()

    - #### getPlane

          private int getPlane(javajs.util.V3 v3)

    - #### findAdditionalAxes

          private void findAdditionalAxes(int nPlanes)

    - #### getInfo

          java.lang.Object getInfo(int modelIndex,
                                   java.lang.String drawID,
                                   boolean asInfo,
                                   java.lang.String type,
                                   int index,
                                   float scaleFactor)

    - #### isDrawType

          boolean isDrawType(java.lang.String type,
                             int index,
                             float scale)