igeo
Class ITensileNet

java.lang.Object
  extended by igeo.ITensileNet

public class ITensileNet
extends java.lang.Object

Class to create tensile network which consists of IParticle and ITensionLine.

Author:
Satoru Sugihara

Nested Class Summary
static class ITensileNet.ConstructorAndParameters<T>
           
static class ITensileNet.IParticleCoupler
           
static class ITensileNet.IParticleOnCurveComparator
           
 
Field Summary
static boolean constantTension
          boolean switch to make tension (of ITensionLine) constant not depending on the distance of two points
static boolean deleteInputLine
          boolean switch to delete input lines; if embedTensionInLine is true, this variable is ignored.
static boolean deleteInputPoint
          boolean switch to delete input fix points
static boolean embedTensionInLine
          if input line is instance of ICurve (not ICurveR), put tension as dynamics inside the curve keeping the original line.
static java.lang.String equalizerLayer
          layer to put equalizer lines
static double equalizerTension
          strength of tension to equalize spacing on the same rail curves
static boolean fixAtRailEnd
          in case with rail curves, boolean switch to fix points which are on end points of rail curves
static IColor fixedPointColor
          color of fixed node points
static java.lang.String fixedPointLayer
          layer to put fixed node points
static boolean fixOpenEnd
          boolean switch to fix open end points of lines which are not connected any other line
static boolean fixPointOffRail
          in case with rail curves, boolean switch to fix points which are not on any rail curves
static double friction
          friction of node points (of IParticle)
static boolean keepDuplicatedMeshEdge
          for creating tensile net out of polygon mesh; if this is false, duplicated edge on adjacent faces are ignored as tension line (duplicated edges inside the polygon mesh are kept, only tension line is not created internally).
static boolean keepDuplicatedMeshVertex
           
 java.util.ArrayList<ITensionI> links
          instance members
 java.util.ArrayList<IParticleI> nodes
           
static double onRailTension
          strength of tension between points on the same rail curves
static java.lang.Class<? extends IParticleI> particleClass
          class for a custom particle class
static java.lang.Class<? extends IParticleOnCurveI> particleOnCurveClass
          class for a custom particle on curve class
static IColor pointColor
          color of node points
static java.lang.String pointLayer
          layer to put node points
static IColor railPointColor
          color of node points on rail curve
static double railTolerance
          tolerance to check which points are on rail
static boolean removeBranchStraightener
          remove straighteners whose two points are shared and branching.
static boolean removeMeshDuplicates
          if true, it rebuilds mesh before converting into tensile net by removing all duplicated vertices and edges.
static boolean spacingEqualizer
          boolean switch to put spacing equalizer force on the same rail curves
static boolean straightener
          boolean switch to put straightening force on connected lines
static IColor straightenerColor
          color of straightener curve
static java.lang.String straightenerLayer
          layer to put straighterner lines
 java.util.ArrayList<IStraightenerI> straighteners
           
static double straightenerTension
          strength of tension to straighten lines
static double straightenerThresholdAngle
          if the connected line is less than this angle, it put straightening force on those lines
static double tension
          strength of tension (of ITensionLine)
static java.lang.Class<? extends ITensionI> tensionClass
          class for a custom tension class
static IColor tensionColor
          color of tension curve; default (null) is the original color of an input geometry
static java.lang.String tensionLayer
          layer to put tension lines; default (when null) is to put the original layer of an input geometry
static boolean tensionOnRail
          in case with rail curves, boolean switch to put tension between points on the same rail curve
static double tolerance
          tolerance to check which points are identical and which lines are connected
 
Constructor Summary
ITensileNet()
           
ITensileNet(java.util.ArrayList<ITensionI> links, java.util.ArrayList<IParticleI> nodes)
           
ITensileNet(java.util.ArrayList<ITensionI> links, java.util.ArrayList<IParticleI> nodes, java.util.ArrayList<IStraightenerI> straighteners)
           
 
Method Summary
static void constantTension(boolean c)
          boolean switch to make tension (of ITensionLine) constant not depending on the distance of two points
static ITensileNet create(ICurveI[] railCurves, ICurveI[] linkLines, ICurveI[] fixedLines, IVecI[] fixedPoints)
          create a network of tension line on rail curve.
static ITensileNet create(ICurveI[] railCurves, ICurveI[] linkLines, IVecI[] fixedPoints)
          create a network of tension line on rail curve.
static ITensileNet create(ICurveI[] linkLines, IVecI[] fixedPoints)
          create a network of tension line.
static ITensileNet create(IMeshI mesh, IVecI[] fixedPoints)
          create a network of tension out of a polygon mesh.
static java.util.ArrayList<IParticleI> createParticleLink(IVecI[][] linePts, java.util.ArrayList<IVecI> pointList, IVecI[] fixedPoints, IParticleI[][] linkParticlesResult, java.lang.Class<? extends IParticleI> customParticleClass)
           
static IParticleOnCurveI createParticleOnClosestCurve(ICurveI[] railCurves, IVec pos, double closenessTolerance, double uTolerance, ITensileNet.ConstructorAndParameters<IParticleOnCurveI> particleOnCurveConst)
          find the closest curve to the point and put particle on the curve.
static IParticleOnCurveI createParticleOnCurve(ICurveI curve, IVec pos, double closenessTolerance, double uTolerance, ITensileNet.ConstructorAndParameters<IParticleOnCurveI> particleOnCurveConst)
          put particle on the curve.
static java.util.ArrayList<IStraightenerI> createStraighteners(java.util.ArrayList<ITensionI> tlines)
          create straighteners out of tension lines.
static java.util.ArrayList<ITensionI> createTensions(IParticleI[][] links, IColor[] linkColors, ILayer[] linkLayer, java.lang.Class<? extends ITensionI> customTensionClass)
           
static void deleteInputLine(boolean f)
          boolean switch to delete input lines
static void deleteInputPoint(boolean f)
          boolean switch to delete input fix points
static void disableConstantTension()
           
static void disableDeleteInputLine()
          boolean switch to delete input lines
static void disableDeleteInputPoint()
          boolean switch to delete input fix points
static void disableEmbedTensionInLine()
          if input line is instance of ICurve (not ICurveR), put tension as dynamics inside the curve keeping the original line.
static void disableFixAtRailEnd()
          in case with rail curves, boolean switch to fix points which are on end points of rail curves
static void disableFixOpenEnd()
          boolean switch to fix open end points of lines which are not connected any other line
static void disableFixPointOffRail(boolean f)
          in case with rail curves, boolean switch to fix points which are not on any rail curves
static void disableRemoveBranchStraightener()
          remove straighteners whose two points are shared and branching.
static void disableSpacingEqualizer()
          boolean switch to put spacing equalizer force on the same rail curves
static void disableStraightener()
          boolean switch to put straightening force on connected lines
static void disableTensionOnRail()
          in case with rail curves, boolean switch to put tension between points on the same rail curve
static void embedTensionInLine(boolean f)
          if input line is instance of ICurve (not ICurveR), put tension as dynamics inside the curve keeping the original line.
static void enableConstantTension()
           
static void enableDeleteInputLine()
          boolean switch to delete input lines
static void enableDeleteInputPoint()
          boolean switch to delete input fix points
static void enableEmbedTensionInLine()
          if input line is instance of ICurve (not ICurveR), put tension as dynamics inside the curve keeping the original line.
static void enableFixAtRailEnd()
          in case with rail curves, boolean switch to fix points which are on end points of rail curves
static void enableFixOpenEnd()
          boolean switch to fix open end points of lines which are not connected any other line
static void enableFixPointOffRail(boolean f)
          in case with rail curves, boolean switch to fix points which are not on any rail curves
static void enableRemoveBranchStraightener()
          remove straighteners whose two points are shared and branching.
static void enableSpacingEqualizer()
          boolean switch to put spacing equalizer force on the same rail curves
static void enableStraightener()
          boolean switch to put straightening force on connected lines
static void enableTensionOnRail()
          in case with rail curves, boolean switch to put tension between points on the same rail curve
static void equalizerLayer(java.lang.String l)
          layer to put equalizer lines
static void equalizerTension(double t)
          strength of tension to equalize spacing on the same rail curves
static ICurveI findClosestCurve(ICurveI[] railCurves, IVec pos, int searchResolution)
          find the closest curve to the point pos out of railsCurves.
static void fixAtRailEnd(boolean f)
          in case with rail curves, boolean switch to fix points which are on end points of rail curves
static void fixedPointColor(float gray)
          color of fixed node points
static void fixedPointColor(float gray, float a)
          color of fixed node points
static void fixedPointColor(float r, float g, float b)
          color of fixed node points
static void fixedPointColor(float r, float g, float b, float a)
          color of fixed node points
static void fixedPointColor(IColor c)
          color of fixed node points
static void fixedPointColor(int gray)
          color of fixed node points
static void fixedPointColor(int gray, int a)
          color of fixed node points
static void fixedPointColor(int r, int g, int b)
          color of fixed node points
static void fixedPointColor(int r, int g, int b, int a)
          color of fixed node points
static void fixedPointLayer(java.lang.String l)
          layer to put fixed node points
static void fixOpenEnd(boolean f)
          boolean switch to fix open end points of lines which are not connected any other line
static void fixParticles(java.util.ArrayList<IParticleI> particles, IVecI[] fixedPoints)
           
static void fixPointOffRail(boolean f)
          in case with rail curves, boolean switch to fix points which are not on any rail curves
static void fric(double f)
          alias of frction(double)
static void friction(double f)
          friction of node points (of IParticle)
static IParticleI getParticleInstance(IVec pt, java.lang.reflect.Constructor<? extends IParticleI> ptclConstructor, java.lang.Class<?>[] ptclConstructorParameters)
          set constructor of particle class.
static IParticleOnCurveI getParticleOnCurveInstance(ICurveI curve, double upos, IVec pos, java.lang.reflect.Constructor<? extends IParticleOnCurveI> pocConstructor, java.lang.Class<?>[] pocConstructorParameters)
           
static ITensionI getTensionInstance(IParticleI pt1, IParticleI pt2, java.lang.reflect.Constructor<? extends ITensionI> tnsnConstructor, java.lang.Class<?>[] tnsnConstructorParameters)
           
 ITensileNet join(ITensileNet net)
           
 ITensileNet join(ITensileNet net, double tolerance)
           
static void keepDuplicatedMeshEdge(boolean keep)
          for creating tensile net out of polygon mesh; if this is false, duplicated edge on adjacent faces are ignored as tension line (duplicated edges inside the polygon mesh are kept, only tension line is not created internally).
static void keepDuplicatedMeshVertex(boolean keep)
           
static void onRailTension(double t)
          strength of tension between points on the same rail curves
static void particleClass(java.lang.Class<? extends IParticleI> cls)
          class for a custom particle class
static void particleOnCurveClass(java.lang.Class<? extends IParticleOnCurveI> cls)
          class for a custom particle on curve class
static void pointColor(float gray)
          color of node points
static void pointColor(float gray, float a)
          color of node points
static void pointColor(float r, float g, float b)
          color of node points
static void pointColor(float r, float g, float b, float a)
          color of node points
static void pointColor(IColor c)
          color of node points
static void pointColor(int gray)
          color of node points
static void pointColor(int gray, int a)
          color of node points
static void pointColor(int r, int g, int b)
          color of node points
static void pointColor(int r, int g, int b, int a)
          color of node points
static void pointLayer(java.lang.String l)
          layer to put node points
static void railPointColor(float gray)
          color of node points on rail curve
static void railPointColor(float gray, float a)
          color of node points on rail curve
static void railPointColor(float r, float g, float b)
          color of node points on rail curve
static void railPointColor(float r, float g, float b, float a)
          color of node points on rail curve
static void railPointColor(IColor c)
          color of node points on rail curve
static void railPointColor(int gray)
          color of node points on rail curve
static void railPointColor(int gray, int a)
          color of node points on rail curve
static void railPointColor(int r, int g, int b)
          color of node points on rail curve
static void railPointColor(int r, int g, int b, int a)
          color of node points on rail curve
static void railTolerance(double t)
          tolerance to check which points are identical and which lines are connected
static void removeBranchStraightener(boolean f)
          remove straighteners whose two points are shared and branching.
static void removeMeshDuplicates(boolean flag)
           
static ITensileNet.ConstructorAndParameters<IParticleI> searchParticleConstructor(java.lang.Class<? extends IParticleI> pclass)
          set constructor of particle class.
static ITensileNet.ConstructorAndParameters<IParticleOnCurveI> searchParticleOnCurveConstructor(java.lang.Class<? extends IParticleOnCurveI> pclass)
          set constructor of particle class.
static ITensileNet.ConstructorAndParameters<ITensionI> searchTensionConstructor(java.lang.Class<? extends ITensionI> tclass)
          set constructor of tension class.
static void spacingEqualizer(boolean f)
          boolean switch to put spacing equalizer force on the same rail curves
static void straightener(boolean s)
          boolean switch to put straightening force on connected lines
static void straightenerColor(float gray)
          color of straightener curve
static void straightenerColor(float gray, float a)
          color of straightener curve
static void straightenerColor(float r, float g, float b)
          color of straightener curve
static void straightenerColor(float r, float g, float b, float a)
          color of straightener curve
static void straightenerColor(IColor c)
          color of straightener curve
static void straightenerColor(int gray)
          color of straightener curve
static void straightenerColor(int gray, int a)
          color of straightener curve
static void straightenerColor(int r, int g, int b)
          color of straightener curve
static void straightenerColor(int r, int g, int b, int a)
          color of straightener curve
static void straightenerLayer(java.lang.String l)
          layer to put straighterner lines
static void straightenerTension(double t)
          strength of tension to straighten lines
static void straightenerThresholdAngle(double angle)
          if the connected line is less than this angle, it put straightening force on those lines
static void tension(double t)
          strength of tension (of ITensionLine)
static void tensionClass(java.lang.Class<? extends ITensionI> cls)
          class for a custom tension class
static void tensionColor(float gray)
          color of tension curve; default is the original color of an input geometry
static void tensionColor(float gray, float a)
          color of tension curve; default is the original color of an input geometry
static void tensionColor(float r, float g, float b)
          color of tension curve; default is the original color of an input geometry
static void tensionColor(float r, float g, float b, float a)
          color of tension curve; default is the original color of an input geometry
static void tensionColor(IColor c)
          color of tension curve; default is the original color of an input geometry
static void tensionColor(int gray)
          color of tension curve; default is the original color of an input geometry
static void tensionColor(int gray, int a)
          color of tension curve; default is the original color of an input geometry
static void tensionColor(int r, int g, int b)
          color of tension curve; default is the original color of an input geometry
static void tensionColor(int r, int g, int b, int a)
          color of tension curve; default is the original color of an input geometry
static void tensionLayer(java.lang.String l)
          layer to put tension lines; default (when null) is to put the original layer of an input geometry
static void tensionOnRail(boolean f)
          in case with rail curves, boolean switch to put tension between points on the same rail curve
static void tolerance(double t)
          tolerance to check which points are identical and which lines are connected
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

friction

public static double friction
friction of node points (of IParticle)


tension

public static double tension
strength of tension (of ITensionLine)


onRailTension

public static double onRailTension
strength of tension between points on the same rail curves


straightenerTension

public static double straightenerTension
strength of tension to straighten lines


equalizerTension

public static double equalizerTension
strength of tension to equalize spacing on the same rail curves


constantTension

public static boolean constantTension
boolean switch to make tension (of ITensionLine) constant not depending on the distance of two points


tolerance

public static double tolerance
tolerance to check which points are identical and which lines are connected


railTolerance

public static double railTolerance
tolerance to check which points are on rail


pointColor

public static IColor pointColor
color of node points


railPointColor

public static IColor railPointColor
color of node points on rail curve


fixedPointColor

public static IColor fixedPointColor
color of fixed node points


straightenerColor

public static IColor straightenerColor
color of straightener curve


tensionColor

public static IColor tensionColor
color of tension curve; default (null) is the original color of an input geometry


pointLayer

public static java.lang.String pointLayer
layer to put node points


fixedPointLayer

public static java.lang.String fixedPointLayer
layer to put fixed node points


straightenerLayer

public static java.lang.String straightenerLayer
layer to put straighterner lines


equalizerLayer

public static java.lang.String equalizerLayer
layer to put equalizer lines


tensionLayer

public static java.lang.String tensionLayer
layer to put tension lines; default (when null) is to put the original layer of an input geometry


fixOpenEnd

public static boolean fixOpenEnd
boolean switch to fix open end points of lines which are not connected any other line


deleteInputLine

public static boolean deleteInputLine
boolean switch to delete input lines; if embedTensionInLine is true, this variable is ignored.


embedTensionInLine

public static boolean embedTensionInLine
if input line is instance of ICurve (not ICurveR), put tension as dynamics inside the curve keeping the original line. this switch precedes deleteInputLine


deleteInputPoint

public static boolean deleteInputPoint
boolean switch to delete input fix points


tensionOnRail

public static boolean tensionOnRail
in case with rail curves, boolean switch to put tension between points on the same rail curve


fixAtRailEnd

public static boolean fixAtRailEnd
in case with rail curves, boolean switch to fix points which are on end points of rail curves


fixPointOffRail

public static boolean fixPointOffRail
in case with rail curves, boolean switch to fix points which are not on any rail curves


straightener

public static boolean straightener
boolean switch to put straightening force on connected lines


straightenerThresholdAngle

public static double straightenerThresholdAngle
if the connected line is less than this angle, it put straightening force on those lines


removeBranchStraightener

public static boolean removeBranchStraightener
remove straighteners whose two points are shared and branching.


spacingEqualizer

public static boolean spacingEqualizer
boolean switch to put spacing equalizer force on the same rail curves


particleClass

public static java.lang.Class<? extends IParticleI> particleClass
class for a custom particle class


tensionClass

public static java.lang.Class<? extends ITensionI> tensionClass
class for a custom tension class


particleOnCurveClass

public static java.lang.Class<? extends IParticleOnCurveI> particleOnCurveClass
class for a custom particle on curve class


removeMeshDuplicates

public static boolean removeMeshDuplicates
if true, it rebuilds mesh before converting into tensile net by removing all duplicated vertices and edges. On the other hand, Two other parameter keepDuplicatedMeshEdge and keepDuplicatedMeshVertex doesn't change mesh itself and give you control on each of edge and vertex


keepDuplicatedMeshEdge

public static boolean keepDuplicatedMeshEdge
for creating tensile net out of polygon mesh; if this is false, duplicated edge on adjacent faces are ignored as tension line (duplicated edges inside the polygon mesh are kept, only tension line is not created internally).


keepDuplicatedMeshVertex

public static boolean keepDuplicatedMeshVertex

links

public java.util.ArrayList<ITensionI> links
instance members


nodes

public java.util.ArrayList<IParticleI> nodes

straighteners

public java.util.ArrayList<IStraightenerI> straighteners
Constructor Detail

ITensileNet

public ITensileNet()

ITensileNet

public ITensileNet(java.util.ArrayList<ITensionI> links,
                   java.util.ArrayList<IParticleI> nodes)

ITensileNet

public ITensileNet(java.util.ArrayList<ITensionI> links,
                   java.util.ArrayList<IParticleI> nodes,
                   java.util.ArrayList<IStraightenerI> straighteners)
Method Detail

friction

public static void friction(double f)
friction of node points (of IParticle)


fric

public static void fric(double f)
alias of frction(double)


tension

public static void tension(double t)
strength of tension (of ITensionLine)


onRailTension

public static void onRailTension(double t)
strength of tension between points on the same rail curves


straightenerTension

public static void straightenerTension(double t)
strength of tension to straighten lines


equalizerTension

public static void equalizerTension(double t)
strength of tension to equalize spacing on the same rail curves


constantTension

public static void constantTension(boolean c)
boolean switch to make tension (of ITensionLine) constant not depending on the distance of two points


enableConstantTension

public static void enableConstantTension()

disableConstantTension

public static void disableConstantTension()

tolerance

public static void tolerance(double t)
tolerance to check which points are identical and which lines are connected


railTolerance

public static void railTolerance(double t)
tolerance to check which points are identical and which lines are connected


pointColor

public static void pointColor(IColor c)
color of node points


pointColor

public static void pointColor(int r,
                              int g,
                              int b,
                              int a)
color of node points


pointColor

public static void pointColor(int r,
                              int g,
                              int b)
color of node points


pointColor

public static void pointColor(int gray,
                              int a)
color of node points


pointColor

public static void pointColor(int gray)
color of node points


pointColor

public static void pointColor(float r,
                              float g,
                              float b,
                              float a)
color of node points


pointColor

public static void pointColor(float r,
                              float g,
                              float b)
color of node points


pointColor

public static void pointColor(float gray,
                              float a)
color of node points


pointColor

public static void pointColor(float gray)
color of node points


railPointColor

public static void railPointColor(IColor c)
color of node points on rail curve


railPointColor

public static void railPointColor(int r,
                                  int g,
                                  int b,
                                  int a)
color of node points on rail curve


railPointColor

public static void railPointColor(int r,
                                  int g,
                                  int b)
color of node points on rail curve


railPointColor

public static void railPointColor(int gray,
                                  int a)
color of node points on rail curve


railPointColor

public static void railPointColor(int gray)
color of node points on rail curve


railPointColor

public static void railPointColor(float r,
                                  float g,
                                  float b,
                                  float a)
color of node points on rail curve


railPointColor

public static void railPointColor(float r,
                                  float g,
                                  float b)
color of node points on rail curve


railPointColor

public static void railPointColor(float gray,
                                  float a)
color of node points on rail curve


railPointColor

public static void railPointColor(float gray)
color of node points on rail curve


fixedPointColor

public static void fixedPointColor(IColor c)
color of fixed node points


fixedPointColor

public static void fixedPointColor(int r,
                                   int g,
                                   int b,
                                   int a)
color of fixed node points


fixedPointColor

public static void fixedPointColor(int r,
                                   int g,
                                   int b)
color of fixed node points


fixedPointColor

public static void fixedPointColor(int gray,
                                   int a)
color of fixed node points


fixedPointColor

public static void fixedPointColor(int gray)
color of fixed node points


fixedPointColor

public static void fixedPointColor(float r,
                                   float g,
                                   float b,
                                   float a)
color of fixed node points


fixedPointColor

public static void fixedPointColor(float r,
                                   float g,
                                   float b)
color of fixed node points


fixedPointColor

public static void fixedPointColor(float gray,
                                   float a)
color of fixed node points


fixedPointColor

public static void fixedPointColor(float gray)
color of fixed node points


straightenerColor

public static void straightenerColor(IColor c)
color of straightener curve


straightenerColor

public static void straightenerColor(int r,
                                     int g,
                                     int b,
                                     int a)
color of straightener curve


straightenerColor

public static void straightenerColor(int r,
                                     int g,
                                     int b)
color of straightener curve


straightenerColor

public static void straightenerColor(int gray,
                                     int a)
color of straightener curve


straightenerColor

public static void straightenerColor(int gray)
color of straightener curve


straightenerColor

public static void straightenerColor(float r,
                                     float g,
                                     float b,
                                     float a)
color of straightener curve


straightenerColor

public static void straightenerColor(float r,
                                     float g,
                                     float b)
color of straightener curve


straightenerColor

public static void straightenerColor(float gray,
                                     float a)
color of straightener curve


straightenerColor

public static void straightenerColor(float gray)
color of straightener curve


tensionColor

public static void tensionColor(IColor c)
color of tension curve; default is the original color of an input geometry


tensionColor

public static void tensionColor(int r,
                                int g,
                                int b,
                                int a)
color of tension curve; default is the original color of an input geometry


tensionColor

public static void tensionColor(int r,
                                int g,
                                int b)
color of tension curve; default is the original color of an input geometry


tensionColor

public static void tensionColor(int gray,
                                int a)
color of tension curve; default is the original color of an input geometry


tensionColor

public static void tensionColor(int gray)
color of tension curve; default is the original color of an input geometry


tensionColor

public static void tensionColor(float r,
                                float g,
                                float b,
                                float a)
color of tension curve; default is the original color of an input geometry


tensionColor

public static void tensionColor(float r,
                                float g,
                                float b)
color of tension curve; default is the original color of an input geometry


tensionColor

public static void tensionColor(float gray,
                                float a)
color of tension curve; default is the original color of an input geometry


tensionColor

public static void tensionColor(float gray)
color of tension curve; default is the original color of an input geometry


pointLayer

public static void pointLayer(java.lang.String l)
layer to put node points


fixedPointLayer

public static void fixedPointLayer(java.lang.String l)
layer to put fixed node points


straightenerLayer

public static void straightenerLayer(java.lang.String l)
layer to put straighterner lines


equalizerLayer

public static void equalizerLayer(java.lang.String l)
layer to put equalizer lines


tensionLayer

public static void tensionLayer(java.lang.String l)
layer to put tension lines; default (when null) is to put the original layer of an input geometry


fixOpenEnd

public static void fixOpenEnd(boolean f)
boolean switch to fix open end points of lines which are not connected any other line


enableFixOpenEnd

public static void enableFixOpenEnd()
boolean switch to fix open end points of lines which are not connected any other line


disableFixOpenEnd

public static void disableFixOpenEnd()
boolean switch to fix open end points of lines which are not connected any other line


deleteInputLine

public static void deleteInputLine(boolean f)
boolean switch to delete input lines


enableDeleteInputLine

public static void enableDeleteInputLine()
boolean switch to delete input lines


disableDeleteInputLine

public static void disableDeleteInputLine()
boolean switch to delete input lines


embedTensionInLine

public static void embedTensionInLine(boolean f)
if input line is instance of ICurve (not ICurveR), put tension as dynamics inside the curve keeping the original line. this switch precedes deleteInputLine


enableEmbedTensionInLine

public static void enableEmbedTensionInLine()
if input line is instance of ICurve (not ICurveR), put tension as dynamics inside the curve keeping the original line. this switch precedes deleteInputLine


disableEmbedTensionInLine

public static void disableEmbedTensionInLine()
if input line is instance of ICurve (not ICurveR), put tension as dynamics inside the curve keeping the original line. this switch precedes deleteInputLine


deleteInputPoint

public static void deleteInputPoint(boolean f)
boolean switch to delete input fix points


enableDeleteInputPoint

public static void enableDeleteInputPoint()
boolean switch to delete input fix points


disableDeleteInputPoint

public static void disableDeleteInputPoint()
boolean switch to delete input fix points


tensionOnRail

public static void tensionOnRail(boolean f)
in case with rail curves, boolean switch to put tension between points on the same rail curve


enableTensionOnRail

public static void enableTensionOnRail()
in case with rail curves, boolean switch to put tension between points on the same rail curve


disableTensionOnRail

public static void disableTensionOnRail()
in case with rail curves, boolean switch to put tension between points on the same rail curve


fixAtRailEnd

public static void fixAtRailEnd(boolean f)
in case with rail curves, boolean switch to fix points which are on end points of rail curves


enableFixAtRailEnd

public static void enableFixAtRailEnd()
in case with rail curves, boolean switch to fix points which are on end points of rail curves


disableFixAtRailEnd

public static void disableFixAtRailEnd()
in case with rail curves, boolean switch to fix points which are on end points of rail curves


fixPointOffRail

public static void fixPointOffRail(boolean f)
in case with rail curves, boolean switch to fix points which are not on any rail curves


enableFixPointOffRail

public static void enableFixPointOffRail(boolean f)
in case with rail curves, boolean switch to fix points which are not on any rail curves


disableFixPointOffRail

public static void disableFixPointOffRail(boolean f)
in case with rail curves, boolean switch to fix points which are not on any rail curves


straightener

public static void straightener(boolean s)
boolean switch to put straightening force on connected lines


enableStraightener

public static void enableStraightener()
boolean switch to put straightening force on connected lines


disableStraightener

public static void disableStraightener()
boolean switch to put straightening force on connected lines


straightenerThresholdAngle

public static void straightenerThresholdAngle(double angle)
if the connected line is less than this angle, it put straightening force on those lines


removeBranchStraightener

public static void removeBranchStraightener(boolean f)
remove straighteners whose two points are shared and branching.


enableRemoveBranchStraightener

public static void enableRemoveBranchStraightener()
remove straighteners whose two points are shared and branching.


disableRemoveBranchStraightener

public static void disableRemoveBranchStraightener()
remove straighteners whose two points are shared and branching.


spacingEqualizer

public static void spacingEqualizer(boolean f)
boolean switch to put spacing equalizer force on the same rail curves


enableSpacingEqualizer

public static void enableSpacingEqualizer()
boolean switch to put spacing equalizer force on the same rail curves


disableSpacingEqualizer

public static void disableSpacingEqualizer()
boolean switch to put spacing equalizer force on the same rail curves


particleClass

public static void particleClass(java.lang.Class<? extends IParticleI> cls)
class for a custom particle class


tensionClass

public static void tensionClass(java.lang.Class<? extends ITensionI> cls)
class for a custom tension class


particleOnCurveClass

public static void particleOnCurveClass(java.lang.Class<? extends IParticleOnCurveI> cls)
class for a custom particle on curve class


removeMeshDuplicates

public static void removeMeshDuplicates(boolean flag)

keepDuplicatedMeshEdge

public static void keepDuplicatedMeshEdge(boolean keep)
for creating tensile net out of polygon mesh; if this is false, duplicated edge on adjacent faces are ignored as tension line (duplicated edges inside the polygon mesh are kept, only tension line is not created internally).


keepDuplicatedMeshVertex

public static void keepDuplicatedMeshVertex(boolean keep)

create

public static ITensileNet create(ICurveI[] linkLines,
                                 IVecI[] fixedPoints)
create a network of tension line.

Parameters:
linkLines - lines to create tension line. if it's curve, it's simplified to line.
fixedPoints - if those points are on the end point of linkLines, those end points of tension line are fixed.

create

public static ITensileNet create(IMeshI mesh,
                                 IVecI[] fixedPoints)
create a network of tension out of a polygon mesh. All the edges are converted into tension member.

Parameters:
mesh - an input mesh whose edges are converted into tension lines and deform the original mesh geometry.
fixedPoints - if those points are on the vertices of the mesh, those vertices are fixed.

fixParticles

public static void fixParticles(java.util.ArrayList<IParticleI> particles,
                                IVecI[] fixedPoints)

createParticleLink

public static java.util.ArrayList<IParticleI> createParticleLink(IVecI[][] linePts,
                                                                 java.util.ArrayList<IVecI> pointList,
                                                                 IVecI[] fixedPoints,
                                                                 IParticleI[][] linkParticlesResult,
                                                                 java.lang.Class<? extends IParticleI> customParticleClass)

createTensions

public static java.util.ArrayList<ITensionI> createTensions(IParticleI[][] links,
                                                            IColor[] linkColors,
                                                            ILayer[] linkLayer,
                                                            java.lang.Class<? extends ITensionI> customTensionClass)

createStraighteners

public static java.util.ArrayList<IStraightenerI> createStraighteners(java.util.ArrayList<ITensionI> tlines)
create straighteners out of tension lines. currently creating IStraightenerCurve (not IStraightener).


searchParticleConstructor

public static ITensileNet.ConstructorAndParameters<IParticleI> searchParticleConstructor(java.lang.Class<? extends IParticleI> pclass)
set constructor of particle class. if success returns true


searchTensionConstructor

public static ITensileNet.ConstructorAndParameters<ITensionI> searchTensionConstructor(java.lang.Class<? extends ITensionI> tclass)
set constructor of tension class. if success returns true


searchParticleOnCurveConstructor

public static ITensileNet.ConstructorAndParameters<IParticleOnCurveI> searchParticleOnCurveConstructor(java.lang.Class<? extends IParticleOnCurveI> pclass)
set constructor of particle class. if success returns true


getParticleInstance

public static IParticleI getParticleInstance(IVec pt,
                                             java.lang.reflect.Constructor<? extends IParticleI> ptclConstructor,
                                             java.lang.Class<?>[] ptclConstructorParameters)
set constructor of particle class. if success returns true


getTensionInstance

public static ITensionI getTensionInstance(IParticleI pt1,
                                           IParticleI pt2,
                                           java.lang.reflect.Constructor<? extends ITensionI> tnsnConstructor,
                                           java.lang.Class<?>[] tnsnConstructorParameters)

getParticleOnCurveInstance

public static IParticleOnCurveI getParticleOnCurveInstance(ICurveI curve,
                                                           double upos,
                                                           IVec pos,
                                                           java.lang.reflect.Constructor<? extends IParticleOnCurveI> pocConstructor,
                                                           java.lang.Class<?>[] pocConstructorParameters)

create

public static ITensileNet create(ICurveI[] railCurves,
                                 ICurveI[] linkLines,
                                 IVecI[] fixedPoints)
create a network of tension line on rail curve.

Parameters:
railCurves - curves on which all the points sit.
linkLines - lines to create tension line. if it's curve, it's simplified to line.
fixedPoints - if those points are on the end point of linkLines, those end points of tension line are fixed. this can be null.

create

public static ITensileNet create(ICurveI[] railCurves,
                                 ICurveI[] linkLines,
                                 ICurveI[] fixedLines,
                                 IVecI[] fixedPoints)
create a network of tension line on rail curve.

Parameters:
railCurves - curves on which all the points sit.
linkLines - lines to create tension line. if it's curve, it's simplified to line.
fixedLines - end points of fixedLines are added to fixedPoints.
fixedPoints - if those points are on the end point of linkLines, those end points of tension line are fixed.

findClosestCurve

public static ICurveI findClosestCurve(ICurveI[] railCurves,
                                       IVec pos,
                                       int searchResolution)
find the closest curve to the point pos out of railsCurves.

Parameters:
railCurves - target curves to search
pos - point to measure the distance to check how close
searchResolution - resolution per a curve specifying how many points per a curve to be checked

createParticleOnClosestCurve

public static IParticleOnCurveI createParticleOnClosestCurve(ICurveI[] railCurves,
                                                             IVec pos,
                                                             double closenessTolerance,
                                                             double uTolerance,
                                                             ITensileNet.ConstructorAndParameters<IParticleOnCurveI> particleOnCurveConst)
find the closest curve to the point and put particle on the curve. if the curve is not close enough within closenessTolerance, particle is not created.

Parameters:
railCurves - target curves to search
pos - point to measure the distance to check how close
closenessTolerance - tolerance to determine if the point is on the curve or not
uTolerance - tolerance in u parameter to specify how precise u parameter of particle shoould be

createParticleOnCurve

public static IParticleOnCurveI createParticleOnCurve(ICurveI curve,
                                                      IVec pos,
                                                      double closenessTolerance,
                                                      double uTolerance,
                                                      ITensileNet.ConstructorAndParameters<IParticleOnCurveI> particleOnCurveConst)
put particle on the curve. if the curve is not close enough within closenessTolerance, particle is not created.

Parameters:
curve - target curves to be on.
pos - point to specify location of particle on the curve and this point is embed inside IParticleOnCurve and controlled by it.
closenessTolerance - tolerance to determine if the point is on the curve or not. if this is negative, it will create any closest particle to the point even if it's far.
uTolerance - tolerance in u parameter to specify how precise u parameter of particle shoould be

join

public ITensileNet join(ITensileNet net)

join

public ITensileNet join(ITensileNet net,
                        double tolerance)