igeo

## Class IConfig

- java.lang.Object
- - igeo.IConfig

-     public class IConfig
      extends java.lang.Object

  An interface to contain static constants used in the whole iGeo system.
  Author:
    Satoru Sugihara

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static IColor` | `ambientColor` default ambient color
    `static double` | `angleTolerance` A parameter to check identical direction in angle.
    `static float` | `arrowSize` default vector graphic arrow size
    `static float` | `arrowWidthRatio` default vector graphic arrow width ratio
    `static boolean` | `autoFocusAtStart` enable focus after geometries created in setup method
    `static double` | `axonometricRatio` default axonometric ratio
    `static IColor` | `bgColor1`
    `static IColor` | `bgColor2`
    `static IColor` | `bgColor3`
    `static IColor` | `bgColor4`
    `static int` | `cacheRecursionMaxDepth` max depth of recursive search of closest point
    `static boolean` | `checkAdjacentWalls` When this option is true, IWall checks all other exsiting walls to see if the particle is also colliging into other walls.
    `static boolean` | `checkDuplicatedControlPoint` when NURBS geometry is created at a constructor, if any control points share a same instance, another instance is created with dup().
    `static boolean` | `checkDuplicatedControlPointOnEdge` when NURBS geometry is created at a constructor, if control points on edges share a same instance, another instance is created with dup().
    `static boolean` | `checkValidControlPoint` when NURBS geometry is created at a constructor, checking validity (not infinite nor NaN) of numbers if this is true.
    `static boolean` | `clearBG` in every drawing cycle, background is cleared with specified background color or gradient
    `static boolean` | `clearParticleForceInPostupdate` frc.zero called in IParticleGeo if this is true and also IConfig.enablePostupdate is true
    `static boolean` | `cullVertexBehindViewInGL` check and remove vertices behind view location in OpenGL graphics
    `static boolean` | `cullVertexBehindViewInP3D` check and remove vertices behind view location in P3D graphics
    `static int` | `curveCacheResolution` resolution per EP for cache points of curve for search of closest point on curve
    `static double` | `defaultAIExportPixelScale`
    `static double` | `defaultAIExportScale` AI Export
    `static boolean` | `defaultConstantFieldIntensity`
    `static double` | `defaultFieldIntensity` field properties
    `static boolean` | `deleteGraphicObjectsAfterDraw` all graphic objects in IGraphicServer are deleted once drawn in a panel (objects in IServer and dynamics in IDynamicServer are preserved) usually used with clearBackground=false
    `static boolean` | `depthSort` enable depth test in GL graphics / depth sort in P3D graphics.
    `static boolean` | `disableDepthTest` forcefully disable depth test in GL
    `static boolean` | `drawOrderForward` set order of drawing in forward (from old to new) or backwards.
    `static IColor` | `emissiveColor` default emissive color
    `static boolean` | `enablePostinteract` enable postinteract method in IDynamicServer.
    `static boolean` | `enablePostupdate` enable postupdate method in IDynamicServer.
    `static boolean` | `enablePreinteract` enable preinteract method in IDynamicServer.
    `static boolean` | `enablePreupdate` enable preupdate method in IDynamicServer.
    `static double` | `farViewRatio` default far clipping distance.
    `static boolean` | `insertBouncePointInTrajectory` Boolean option to turn on/off inserting an interesection point on IWall when bouncing into a trajectory curve of ITrajectoryI.
    `static int` | `isoparmResolution` Number of isoperms to draw surfaces in graphic classes.
    `static double` | `keyAxonometricPanSpeed` Speed of panning in keyboard (arrow keys in default) 3D navigation in axonometric view in INavigator class.
    `static double` | `keyPerspectivePanSpeed` Speed of panning in keyboard (arrow keys in default) 3D navigation in perspective view in INavigator class.
    `static double` | `keyPerspectiveZoomSpeed` Speed of zooming in keyboard (arrow keys in default) 3D navigation in perspective view in INavigator class.
    `static double` | `keyRotationSpeed` Speed of rotation in keyboard (arrow keys in default) 3D navigation in INavigator class.
    `static double` | `keyZoomSpeed` Speed of zooming in keyboard (arrow keys in default) 3D navigation in axonometric view in INavigator class.
    `static boolean` | `lightWireframe` change wireframe colors by lights when using lights
    `static boolean` | `loopPostinteract` put postinteract method in another independent for-loop in IDynamicServer.
    `static boolean` | `loopPostupdate` put postupdate method in another independent for-loop in IDynamicServer.
    `static boolean` | `loopPreinteract` put preinteract method in another independent for-loop in IDynamicServer.
    `static boolean` | `loopPreupdate` put preupdate method in another independent for-loop in IDynamicServer.
    `static int` | `maxObjectNumberForDepthSort` if number of objects exceeds this, it automatically turn off depth sort in P3D.
    `static int` | `meshCircleResolution` number to facet circle to approximate it in polygon mesh.
    `static double` | `mouseAxonometricPanSpeed` Speed of panning in mouse 3D navigation in axonometric view in INavigator class.
    `static double` | `mouseAxonometricZoomSpeed` Speed of zooming in mouse 3D navigation in axonometric view in INavigator class.
    `static double` | `mousePerspectivePanResolution` Amount of panning in perspective view by one pixel move of mouse is equal to bounding box size of existing geometry devided by this resolution.
    `static double` | `mousePerspectiveZoomResolution` Amount of zoom in perspective view by one pixel move of mouse is equal to bounding box size of existing geometry devided by this resolution.
    `static double` | `mouseRotationSpeed` Speed of rotation in mouse 3D navigation in INavigator class.
    `static double` | `mouseWheelZoomSpeed` Speed of zooming in mouse 3D navigation in both axonometric and perspective view in INavigator class.
    `static double` | `nearViewRatio` default near clipping distance.
    `static IColor` | `objectColor` default object color to draw
    `static double` | `parameterTolerance` A parameter to check identical location in U-V parametric space in NURBS geometry.
    `static double` | `perspectiveRatio` default perspective ratio
    `static float` | `pointSize` default point graphic dot size
    `static boolean` | `read3dmUserData` Rhino 3dm Import
    `static boolean` | `removeDuplicatesAtMeshCreation` remove duplicated vertices and edges under the tolerance = IConfig.tolerance automatically when a mesh is created in new IMesh(IFace[] faces)
    `static int` | `segmentResolution` Point resolution per edit points to draw curves in graphic classes.
    `static float` | `shininess` default shininess
    `static boolean` | `smoothGraphicP3D` turn on smooth option in P3D.
    `static IColor` | `specularColor` default specular color
    `static IColor` | `strokeColor` default stroke color to draw
    `static float` | `strokeWeight` default stroke weight to draw
    `static int` | `surfaceCacheResolution` resolution per EP for cache points of surface for search of closest point on surface
    `static boolean` | `syncDrawAndDynamics` synchronize draw loop and dynamics updating loop instead of using another thread.
    `static int` | `tessellationResolution` Number of division per edit point to tesselate a surface into mesh.
    `static double` | `tolerance` A parameter to check identical location.
    `static int` | `transparentModeAlpha` transparency in transparent graphic mode in integer 0 - 255 (it used to be float 0.0-1.0.
    `static boolean` | `transparentWireframe` make wireframe transparent in transparent display mode
    `static int` | `trimApproximationResolution` This is only for saving brep or trimmed surface to Rhino file where the 2D trim curve is also required to have 3D representation; 3D curve is approximated with sampled points in this resolution.
    `static int` | `trimSegmentResolution` Point resolution per the isoparm segment to draw trim curves of surfaces.
    `static boolean` | `updateMeshNormal` update normal vector of mesh when its graphics is updated by agents.
    `static double` | `updateRate` update speed of dynamics thread in seccond
    `static boolean` | `useLight` turn on lights on display
    `static double` | `viewDistance` default view distance
    `static double` | `viewDistanceRatio` view distance ration.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IConfig()`

  - ### Method Summary

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

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

- - ### Field Detail

    - #### tolerance

          public static double tolerance

      A parameter to check identical location. Length below this is ignored and seen as zero. Length is measured in whatever unit of the file

    - #### parameterTolerance

          public static double parameterTolerance

      A parameter to check identical location in U-V parametric space in NURBS geometry. Length below this is ignored and seen as zero. Range of U-V parameter space should be always 0.0-1.0.

    - #### angleTolerance

          public static double angleTolerance

      A parameter to check identical direction in angle. Angle difference below this is ignored and seen as zero. The unit is radian.

    - #### segmentResolution

          public static int segmentResolution

      Point resolution per edit points to draw curves in graphic classes.

    - #### isoparmResolution

          public static int isoparmResolution

      Number of isoperms to draw surfaces in graphic classes. if it's zero, no isoparm

    - #### tessellationResolution

          public static int tessellationResolution

      Number of division per edit point to tesselate a surface into mesh.

    - #### trimSegmentResolution

          public static int trimSegmentResolution

      Point resolution per the isoparm segment to draw trim curves of surfaces.

    - #### trimApproximationResolution

          public static int trimApproximationResolution

      This is only for saving brep or trimmed surface to Rhino file where the 2D trim curve is also required to have 3D representation; 3D curve is approximated with sampled points in this resolution.

    - #### objectColor

          public static IColor objectColor

      default object color to draw

    - #### strokeColor

          public static IColor strokeColor

      default stroke color to draw

    - #### strokeWeight

          public static float strokeWeight

      default stroke weight to draw

    - #### ambientColor

          public static IColor ambientColor

      default ambient color

    - #### emissiveColor

          public static IColor emissiveColor

      default emissive color

    - #### specularColor

          public static IColor specularColor

      default specular color

    - #### shininess

          public static float shininess

      default shininess

    - #### transparentModeAlpha

          public static int transparentModeAlpha

      transparency in transparent graphic mode in integer 0 - 255 (it used to be float 0.0-1.0. it changed)

    - #### bgColor1

          public static IColor bgColor1

    - #### bgColor2

          public static IColor bgColor2

    - #### bgColor3

          public static IColor bgColor3

    - #### bgColor4

          public static IColor bgColor4

    - #### pointSize

          public static float pointSize

      default point graphic dot size

    - #### arrowSize

          public static float arrowSize

      default vector graphic arrow size

    - #### arrowWidthRatio

          public static float arrowWidthRatio

      default vector graphic arrow width ratio

    - #### useLight

          public static boolean useLight

      turn on lights on display

    - #### lightWireframe

          public static boolean lightWireframe

      change wireframe colors by lights when using lights

    - #### transparentWireframe

          public static boolean transparentWireframe

      make wireframe transparent in transparent display mode

    - #### cullVertexBehindViewInP3D

          public static boolean cullVertexBehindViewInP3D

      check and remove vertices behind view location in P3D graphics

    - #### cullVertexBehindViewInGL

          public static boolean cullVertexBehindViewInGL

      check and remove vertices behind view location in OpenGL graphics

    - #### depthSort

          public static boolean depthSort

      enable depth test in GL graphics / depth sort in P3D graphics. if there are many faces, this makes it very slow to deisplay

    - #### disableDepthTest

          public static boolean disableDepthTest

      forcefully disable depth test in GL

    - #### maxObjectNumberForDepthSort

          public static int maxObjectNumberForDepthSort

      if number of objects exceeds this, it automatically turn off depth sort in P3D. if number is negative, number is not checked.

    - #### smoothGraphicP3D

          public static boolean smoothGraphicP3D

      turn on smooth option in P3D. This makes it slow in perspective when many vertices are out of display

    - #### drawOrderForward

          public static boolean drawOrderForward

      set order of drawing in forward (from old to new) or backwards. default is false(backwards)

    - #### deleteGraphicObjectsAfterDraw

          public static boolean deleteGraphicObjectsAfterDraw

      all graphic objects in IGraphicServer are deleted once drawn in a panel (objects in IServer and dynamics in IDynamicServer are preserved) usually used with clearBackground=false

    - #### clearBG

          public static boolean clearBG

      in every drawing cycle, background is cleared with specified background color or gradient

    - #### meshCircleResolution

          public static int meshCircleResolution

      number to facet circle to approximate it in polygon mesh.

    - #### updateMeshNormal

          public static boolean updateMeshNormal

      update normal vector of mesh when its graphics is updated by agents.

    - #### removeDuplicatesAtMeshCreation

          public static boolean removeDuplicatesAtMeshCreation

      remove duplicated vertices and edges under the tolerance = IConfig.tolerance automatically when a mesh is created in new IMesh(IFace[] faces)

    - #### curveCacheResolution

          public static int curveCacheResolution

      resolution per EP for cache points of curve for search of closest point on curve

    - #### surfaceCacheResolution

          public static int surfaceCacheResolution

      resolution per EP for cache points of surface for search of closest point on surface

    - #### cacheRecursionMaxDepth

          public static int cacheRecursionMaxDepth

      max depth of recursive search of closest point

    - #### defaultFieldIntensity

          public static double defaultFieldIntensity

      field properties

    - #### defaultConstantFieldIntensity

          public static boolean defaultConstantFieldIntensity

    - #### updateRate

          public static double updateRate

      update speed of dynamics thread in seccond

    - #### enablePreinteract

          public static boolean enablePreinteract

      enable preinteract method in IDynamicServer. Default is true. If false, some functionalities of IDynamics inheriting class like IAgent are disabled.

    - #### enablePostinteract

          public static boolean enablePostinteract

      enable postinteract method in IDynamicServer. Default is true. If false, some functionalities of IDynamics inheriting class like IAgent are disabled.

    - #### enablePreupdate

          public static boolean enablePreupdate

      enable preupdate method in IDynamicServer. Default is true. If false, some functionalities of IDynamics inheriting class like IAgent are disabled.

    - #### enablePostupdate

          public static boolean enablePostupdate

      enable postupdate method in IDynamicServer. Default is true. If false, some functionalities of IDynamics inheriting class like IAgent are disabled.

    - #### loopPreinteract

          public static boolean loopPreinteract

      put preinteract method in another independent for-loop in IDynamicServer. Execution order will change but the execution speed might be slower. Default is true.

    - #### loopPostinteract

          public static boolean loopPostinteract

      put postinteract method in another independent for-loop in IDynamicServer. Execution order will change but the execution speed might be slower. To have accurate physical simulation, this need to be true. Default is true.

    - #### loopPreupdate

          public static boolean loopPreupdate

      put preupdate method in another independent for-loop in IDynamicServer. Execution order will change but the execution speed might be slower. To have accurate physical simulation, this need to be true. Default is true.

    - #### loopPostupdate

          public static boolean loopPostupdate

      put postupdate method in another independent for-loop in IDynamicServer. Execution order will change but the execution speed might be slower. Default is false.

    - #### syncDrawAndDynamics

          public static boolean syncDrawAndDynamics

      synchronize draw loop and dynamics updating loop instead of using another thread. default is false to use multi-thread.

    - #### clearParticleForceInPostupdate

          public static boolean clearParticleForceInPostupdate

      frc.zero called in IParticleGeo if this is true and also IConfig.enablePostupdate is true

    - #### insertBouncePointInTrajectory

          public static boolean insertBouncePointInTrajectory

      Boolean option to turn on/off inserting an interesection point on IWall when bouncing into a trajectory curve of ITrajectoryI. Default is true

    - #### checkAdjacentWalls

          public static boolean checkAdjacentWalls

      When this option is true, IWall checks all other exsiting walls to see if the particle is also colliging into other walls. If so, only the closest one collides. True on this option makes the process heavy. Default is true.

    - #### mouseRotationSpeed

          public static double mouseRotationSpeed

      Speed of rotation in mouse 3D navigation in INavigator class. The unit is degree of the angle per pixel of the mouse move.

    - #### mousePerspectivePanResolution

          public static double mousePerspectivePanResolution

      Amount of panning in perspective view by one pixel move of mouse is equal to bounding box size of existing geometry devided by this resolution. Bounding box is updated when view is focused to existing geometry. Size of boundary box is average of width, height and depth.

    - #### mouseAxonometricPanSpeed

          public static double mouseAxonometricPanSpeed

      Speed of panning in mouse 3D navigation in axonometric view in INavigator class. The unit is ratio of corresponding length per pixel in axonometric view.

    - #### mousePerspectiveZoomResolution

          public static double mousePerspectiveZoomResolution

      Amount of zoom in perspective view by one pixel move of mouse is equal to bounding box size of existing geometry devided by this resolution. Bounding box is updated when view is focused to existing geometry. Size of boundary box is average of width, height and depth.

    - #### mouseAxonometricZoomSpeed

          public static double mouseAxonometricZoomSpeed

      Speed of zooming in mouse 3D navigation in axonometric view in INavigator class. The unit is increment/decrement of percentage per pixel of the mouse move.

    - #### mouseWheelZoomSpeed

          public static double mouseWheelZoomSpeed

      Speed of zooming in mouse 3D navigation in both axonometric and perspective view in INavigator class. The unit is equivalent pixel move of mouse per a increment/decrement of the wheel.

    - #### autoFocusAtStart

          public static boolean autoFocusAtStart

      enable focus after geometries created in setup method

    - #### keyRotationSpeed

          public static double keyRotationSpeed

      Speed of rotation in keyboard (arrow keys in default) 3D navigation in INavigator class. The unit is degree of the angle per one key press.

    - #### keyPerspectivePanSpeed

          public static double keyPerspectivePanSpeed

      Speed of panning in keyboard (arrow keys in default) 3D navigation in perspective view in INavigator class. The unit is unit of length in 3D space per one key press.

    - #### keyAxonometricPanSpeed

          public static double keyAxonometricPanSpeed

      Speed of panning in keyboard (arrow keys in default) 3D navigation in axonometric view in INavigator class. The unit is ratio of corresponding length per one key press in axonometric view.

    - #### keyPerspectiveZoomSpeed

          public static double keyPerspectiveZoomSpeed

      Speed of zooming in keyboard (arrow keys in default) 3D navigation in perspective view in INavigator class. The unit is distance of front/back view move per one key press of the mouse move.

    - #### keyZoomSpeed

          public static double keyZoomSpeed

      Speed of zooming in keyboard (arrow keys in default) 3D navigation in axonometric view in INavigator class. The unit is equivalent pixel move of mouse per one key press.

    - #### nearViewRatio

          public static double nearViewRatio

      default near clipping distance. ratio to existing geometry bounding box

    - #### farViewRatio

          public static double farViewRatio

      default far clipping distance. ratio to existing geometry bounding box

    - #### viewDistanceRatio

          public static double viewDistanceRatio

      view distance ration. ratio to bounding box size

    - #### viewDistance

          public static double viewDistance

      default view distance

    - #### axonometricRatio

          public static double axonometricRatio

      default axonometric ratio

    - #### perspectiveRatio

          public static double perspectiveRatio

      default perspective ratio

    - #### checkDuplicatedControlPointOnEdge

          public static boolean checkDuplicatedControlPointOnEdge

      when NURBS geometry is created at a constructor, if control points on edges share a same instance, another instance is created with dup(). This can be overridden by checkDuplicatedControlPoint. Duplicate is avoided to apply tranfromation to all the control points equally.

    - #### checkDuplicatedControlPoint

          public static boolean checkDuplicatedControlPoint

      when NURBS geometry is created at a constructor, if any control points share a same instance, another instance is created with dup(). Duplicate is avoided to apply tranfromation to all the control points equally.

    - #### checkValidControlPoint

          public static boolean checkValidControlPoint

      when NURBS geometry is created at a constructor, checking validity (not infinite nor NaN) of numbers if this is true.

    - #### defaultAIExportScale

          public static double defaultAIExportScale

      AI Export

    - #### defaultAIExportPixelScale

          public static double defaultAIExportPixelScale

    - #### read3dmUserData

          public static boolean read3dmUserData

      Rhino 3dm Import

  - ### Constructor Detail

    - #### IConfig

          public IConfig()