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.


Nested Class Summary
static class ITensileNet.IParticleOnCurveComparator
           
 
Field Summary
static double curveTension
           
static double friction
           
 java.util.ArrayList<ITensionLine> links
           
 java.util.ArrayList<IParticleAgent> nodes
           
static double tension
           
 
Constructor Summary
ITensileNet()
           
ITensileNet(java.util.ArrayList<ITensionLine> links, java.util.ArrayList<IParticleAgent> nodes)
           
 
Method Summary
static ITensileNet create(ICurveI[] linkLines)
           
static ITensileNet create(ICurveI[] linkLines, boolean fixOpenEndLinkPoint)
           
static ITensileNet create(ICurveI[] sectionCurves, ICurveI[] linkLines)
           
static ITensileNet create(ICurveI[] sectionCurves, ICurveI[] linkLines, ICurveI[] fixedLines, IVecI[] fixedPoints)
           
static ITensileNet create(ICurveI[] sectionCurves, ICurveI[] linkLines, ICurveI[] fixedLines, IVecI[] fixedPoints, boolean tensionOnSameSection, boolean fixOpenEndLinkPoint, boolean fixOpenEndSectionPoint)
           
static ITensileNet create(ICurveI[] sectionCurves, ICurveI[] linkLines, ICurveI[] fixedLines, IVecI[] fixedPoints, boolean tensionOnSameSection, boolean fixOpenEndLinkPoint, boolean fixOpenEndSectionPoint, boolean deleteLines)
           
static ITensileNet create(ICurveI[] sectionCurves, ICurveI[] linkLines, ICurveI[] fixedLines, IVecI[] fixedPoints, boolean tensionOnSameSection, boolean fixOpenEndLinkPoint, boolean fixOpenEndSectionPoint, boolean deleteLines, double connectionTolerance)
          create a network of tension line on section curve.
static ITensileNet create(ICurveI[] sectionCurves, ICurveI[] linkLines, IVecI[] fixedPoints)
           
static ITensileNet create(ICurveI[] sectionCurves, ICurveI[] linkLines, IVecI[] fixedPoints, boolean fixOpenEndLinkPoint, boolean fixOpenEndSectionPoint, boolean deleteLines)
           
static ITensileNet create(ICurveI[] sectionCurves, ICurveI[] linkLines, IVecI[] fixedPoints, boolean tensionOnSameSection, boolean fixOpenEndLinkPoint, boolean fixOpenEndSectionPoint, boolean deleteLines)
           
static ITensileNet create(ICurveI[] sectionCurves, ICurveI[] linkLines, IVecI[] fixedPoints, boolean tensionOnSameSection, boolean fixOpenEndLinkPoint, boolean fixOpenEndSectionPoint, boolean deleteLines, double connectionTolerance)
          create a network of tension line on section curve.
static ITensileNet create(ICurveI[] sectionCurves, ICurveI[] linkLines, IVecI[] fixedPoints, boolean fixOpenEndLinkPoint, boolean fixOpenEndSectionPoint, boolean deleteLines, double connectionTolerance)
           
static ITensileNet create(ICurveI[] linkLines, IVecI[] fixedPoints)
           
static ITensileNet create(ICurveI[] linkLines, IVecI[] fixedPoints, boolean fixOpenEndLinkPoint)
           
static ITensileNet create(ICurveI[] linkLines, IVecI[] fixedPoints, boolean fixOpenEndLinkPoint, boolean deleteLines)
           
static ITensileNet create(ICurveI[] linkLines, IVecI[] fixedPoints, boolean fixOpenEndPoint, boolean deleteLines, double connectionTolerance)
          create a network of tension line.
static IParticleOnCurve createParticleOnClosestCurve(ICurveI[] sectionCurves, IVec pos, double closenessTolerance, double uTolerance)
          find the closest curve to the point and put particle on the curve.
static IParticleOnCurve createParticleOnCurve(ICurveI curve, IVec pos, double closenessTolerance, double uTolerance)
          put particle on the curve.
static ICurveI findClosestCurve(ICurveI[] sectionCurves, IVec pos, int searchResolution)
          find the closest curve to the point pos out of sectionsCurves.
 
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

tension

public static double tension

curveTension

public static double curveTension

links

public java.util.ArrayList<ITensionLine> links

nodes

public java.util.ArrayList<IParticleAgent> nodes
Constructor Detail

ITensileNet

ITensileNet()

ITensileNet

ITensileNet(java.util.ArrayList<ITensionLine> links,
            java.util.ArrayList<IParticleAgent> nodes)
Method Detail

create

public static ITensileNet create(ICurveI[] linkLines,
                                 IVecI[] fixedPoints,
                                 boolean fixOpenEndPoint,
                                 boolean deleteLines,
                                 double connectionTolerance)
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.
deleteLines - when this is true and if lines are subclass of IObject, lines are deleted.
connectionTolerance - tolerance to if two end points are connected or not

create

public static ITensileNet create(ICurveI[] linkLines,
                                 IVecI[] fixedPoints,
                                 boolean fixOpenEndLinkPoint,
                                 boolean deleteLines)

create

public static ITensileNet create(ICurveI[] linkLines,
                                 IVecI[] fixedPoints,
                                 boolean fixOpenEndLinkPoint)

create

public static ITensileNet create(ICurveI[] linkLines,
                                 boolean fixOpenEndLinkPoint)

create

public static ITensileNet create(ICurveI[] linkLines,
                                 IVecI[] fixedPoints)

create

public static ITensileNet create(ICurveI[] linkLines)

create

public static ITensileNet create(ICurveI[] sectionCurves,
                                 ICurveI[] linkLines)

create

public static ITensileNet create(ICurveI[] sectionCurves,
                                 ICurveI[] linkLines,
                                 IVecI[] fixedPoints)

create

public static ITensileNet create(ICurveI[] sectionCurves,
                                 ICurveI[] linkLines,
                                 IVecI[] fixedPoints,
                                 boolean fixOpenEndLinkPoint,
                                 boolean fixOpenEndSectionPoint,
                                 boolean deleteLines)

create

public static ITensileNet create(ICurveI[] sectionCurves,
                                 ICurveI[] linkLines,
                                 IVecI[] fixedPoints,
                                 boolean fixOpenEndLinkPoint,
                                 boolean fixOpenEndSectionPoint,
                                 boolean deleteLines,
                                 double connectionTolerance)

create

public static ITensileNet create(ICurveI[] sectionCurves,
                                 ICurveI[] linkLines,
                                 IVecI[] fixedPoints,
                                 boolean tensionOnSameSection,
                                 boolean fixOpenEndLinkPoint,
                                 boolean fixOpenEndSectionPoint,
                                 boolean deleteLines)

create

public static ITensileNet create(ICurveI[] sectionCurves,
                                 ICurveI[] linkLines,
                                 IVecI[] fixedPoints,
                                 boolean tensionOnSameSection,
                                 boolean fixOpenEndLinkPoint,
                                 boolean fixOpenEndSectionPoint,
                                 boolean deleteLines,
                                 double connectionTolerance)
create a network of tension line on section curve.

Parameters:
sectionCurves - 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.
tensionOnSameSection - when this is true, tension between points on the same curve is created.
fixOpenEndLinkPoint - when this is true open end of link lines are fixed
fixOpenEndSectionPoint - when this is true points on the end of section are fixed
deleteLines - when this is true and if lines are subclass of IObject, lines are deleted.
connectionTolerance - tolerance to if two end points are connected or not

create

public static ITensileNet create(ICurveI[] sectionCurves,
                                 ICurveI[] linkLines,
                                 ICurveI[] fixedLines,
                                 IVecI[] fixedPoints)

create

public static ITensileNet create(ICurveI[] sectionCurves,
                                 ICurveI[] linkLines,
                                 ICurveI[] fixedLines,
                                 IVecI[] fixedPoints,
                                 boolean tensionOnSameSection,
                                 boolean fixOpenEndLinkPoint,
                                 boolean fixOpenEndSectionPoint)

create

public static ITensileNet create(ICurveI[] sectionCurves,
                                 ICurveI[] linkLines,
                                 ICurveI[] fixedLines,
                                 IVecI[] fixedPoints,
                                 boolean tensionOnSameSection,
                                 boolean fixOpenEndLinkPoint,
                                 boolean fixOpenEndSectionPoint,
                                 boolean deleteLines)

create

public static ITensileNet create(ICurveI[] sectionCurves,
                                 ICurveI[] linkLines,
                                 ICurveI[] fixedLines,
                                 IVecI[] fixedPoints,
                                 boolean tensionOnSameSection,
                                 boolean fixOpenEndLinkPoint,
                                 boolean fixOpenEndSectionPoint,
                                 boolean deleteLines,
                                 double connectionTolerance)
create a network of tension line on section curve.

Parameters:
sectionCurves - 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.
tensionOnSameSection - when this is true, tension between points on the same curve is created.
fixOpenEndLinkPoint - when this is true open end of link lines are fixed
fixOpenEndSectionPoint - when this is true points on the end of section are fixed
deleteLines - when this is true and if lines are subclass of IObject, lines are deleted.
connectionTolerance - tolerance to if two end points are connected or not

findClosestCurve

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

Parameters:
sectionCurves - 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 IParticleOnCurve createParticleOnClosestCurve(ICurveI[] sectionCurves,
                                                            IVec pos,
                                                            double closenessTolerance,
                                                            double uTolerance)
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:
sectionCurves - 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 IParticleOnCurve createParticleOnCurve(ICurveI curve,
                                                     IVec pos,
                                                     double closenessTolerance,
                                                     double uTolerance)
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