artisynth.core.mfreemodels
Class MFreeFactory

java.lang.Object
  extended by artisynth.core.mfreemodels.MFreeFactory

public class MFreeFactory
extends java.lang.Object


Field Summary
static int DEFAULT_GRID_IPNT_FACTOR
           
static RadialWeightFunction.RadialWeightFunctionType DEFAULT_RADIAL_KERNEL_TYPE
           
static MFreeShapeFunction.MFreeShapeFunctionType DEFAULT_SHAPE_FUNCTION_TYPE
           
static double DEFAULT_TOLERANCE
           
 
Constructor Summary
MFreeFactory()
           
 
Method Summary
static void addWarpingPoints(java.util.List<MFreeElement3d> elems, BVTree nodeTree)
           
static boolean[][] buildIntersectionChart(java.util.List<MFreeNode3d> nodeList)
           
static boolean[][] buildIntersectionChart(MFreeNode3d[] nodeArray)
           
static MFreeModel3d cloneFem(MFreeModel3d model, FemModel3d fem)
           
static DirectedGraph<MFreeElement3d,MFreeNode3d> convertConnectivity(java.util.List<MFreeNode3d> nodes, java.util.List<MFreeElement3d> elems, DirectedGraph<int[],java.lang.Integer> graph)
           
static MeshBase convertToMFreeMesh(MeshBase orig, BVTree nodeTree, double tol)
           
static MFreeModel3d createBeam(MFreeModel3d model, double[] size, int[] res, double rfactor)
           
static MFreeModel3d createBeam(MFreeModel3d model, RadialWeightFunction.RadialWeightFunctionType fType, MFreeShapeFunction.MFreeShapeFunctionType sType, double[] size, int[] res, double rfactor)
           
static MFreeModel3d createBeam(MFreeModel3d model, RadialWeightFunction.RadialWeightFunctionType fType, MFreeShapeFunction.MFreeShapeFunctionType sType, double[] size, int[] res, int[] ipntRes, double rfactor)
           
static MFreeIntegrationPoint3d[] createIntegrationPoints(CubaturePoint3d[] cpnts, BVTree nodeTree)
           
static MFreeModel3d createModel(MFreeModel3d model, java.util.List<MFreeNode3d> nodes, PolygonalMesh surface, CubaturePoint3d[] cpnts)
           
static MFreeModel3d createModel(MFreeModel3d model, Point3d[] nodeLocs, double nodeRad, Point3d[] ipntLoc, PolygonalMesh surface)
           
static MFreeModel3d createModel(MFreeModel3d model, Point3d[] nodeLocs, double nodeRad, Point3d[] ipntLoc, RadialWeightFunction.RadialWeightFunctionType fType, MFreeShapeFunction.MFreeShapeFunctionType sType, PolygonalMesh surface)
           
static MFreeModel3d createModel(MFreeModel3d model, PolygonalMesh surface, RigidTransform3d pos, int nNodes, int nIPnts)
           
static MFreeModel3d createModel(MFreeModel3d model, PolygonalMesh surface, RigidTransform3d pos, int nNodes, int nIPnts, int[] gridRes, double rscale)
           
static void createNodeMeshes(java.util.List<MFreeNode3d> nodes, BVTree nodeTree, PolygonalMesh surface)
           
static java.util.ArrayList<MFreeElement3d> createPairedElements(java.util.List<MFreeNode3d> nodes, boolean[][] iChart)
           
static void createPairedElemMeshes(java.util.List<MFreeElement3d> elemList, BVTree nodeTree)
           
static MFreeModel3d createPairedModel(MFreeModel3d model, java.util.List<MFreeNode3d> nodes, PolygonalMesh surface, CubaturePoint3d[] cpnts)
           
static MFreeModel3d createPairedModel(MFreeModel3d model, Point3d[] nodeLocs, double nodeRad, Point3d[] ipntLoc, RadialWeightFunction.RadialWeightFunctionType fType, MFreeShapeFunction.MFreeShapeFunctionType sType, PolygonalMesh surface)
           
static java.util.ArrayList<MFreeElement3d> createPartitionedElements(java.util.List<MFreeNode3d> nodes, DirectedGraph<int[],java.lang.Integer> connectivityGraph)
           
static
<A extends MFreePoint3d>
java.util.ArrayList<MFreeElement3d>
createPartitionedElementsFromPoints(A[] pnts, java.util.HashMap<A,MFreeElement3d> pntMap)
           
static void createPartitionedElemMeshes(java.util.List<MFreeElement3d> elemList, java.util.List<MFreeNode3d> nodeList, BVTree nodeTree, DirectedGraph<int[],java.lang.Integer> connectivityGraph)
           
static MFreeIntegrationPoint3d createWarpingPoint(MFreeElement3d elem, Point3d pos, BVTree nodeTree)
           
static void distributeIPointsFromMap(java.util.HashMap<MFreeIntegrationPoint3d,MFreeElement3d> pntMap)
           
static void distributePairedIPoints(MFreeElement3d[] elemList, MFreeIntegrationPoint3d[] ipnts, IntegrationData3d[] idata, BVTree elemTree, double tol)
           
static void distributePartitionedIPoints(DirectedGraph<MFreeElement3d,MFreeNode3d> connectivity, MFreeIntegrationPoint3d[] ipnts, IntegrationData3d[] idata, BVTree elemTree, double tol)
           
static java.util.ArrayList<MFreeNode3d> findNodesContaining(Point3d pnt, BVTree bvtree, double tol)
           
static java.util.ArrayList<MFreeElement3d> findPairdElementsContaining(Point3d pnt, BVTree bvtree, double tol)
           
static java.util.ArrayList<MFreeElement3d> findPairedElementsContaining(Point3d pnt, BVTree bvtree, double tol)
           
static java.util.ArrayList<MFreeElement3d> findPartitionedElementsContaining(Point3d pnt, DirectedGraph<MFreeElement3d,MFreeNode3d> connectivity, BVTree bvtree, double tol)
           
static Point3d[] generateNodes(PolygonalMesh mesh, int[] res, int nPoints)
           
static java.util.ArrayList<MFreeElement3d> trimEmptyElements(java.util.List<MFreeElement3d> elemList)
           
static void updatePointCoordinates(java.util.List<? extends MFreePoint3d> pnts, BVTree nodeTree, double tol)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_TOLERANCE

public static double DEFAULT_TOLERANCE

DEFAULT_GRID_IPNT_FACTOR

public static int DEFAULT_GRID_IPNT_FACTOR

DEFAULT_RADIAL_KERNEL_TYPE

public static RadialWeightFunction.RadialWeightFunctionType DEFAULT_RADIAL_KERNEL_TYPE

DEFAULT_SHAPE_FUNCTION_TYPE

public static MFreeShapeFunction.MFreeShapeFunctionType DEFAULT_SHAPE_FUNCTION_TYPE
Constructor Detail

MFreeFactory

public MFreeFactory()
Method Detail

createBeam

public static MFreeModel3d createBeam(MFreeModel3d model,
                                      double[] size,
                                      int[] res,
                                      double rfactor)

createBeam

public static MFreeModel3d createBeam(MFreeModel3d model,
                                      RadialWeightFunction.RadialWeightFunctionType fType,
                                      MFreeShapeFunction.MFreeShapeFunctionType sType,
                                      double[] size,
                                      int[] res,
                                      double rfactor)

createModel

public static MFreeModel3d createModel(MFreeModel3d model,
                                       PolygonalMesh surface,
                                       RigidTransform3d pos,
                                       int nNodes,
                                       int nIPnts)

createModel

public static MFreeModel3d createModel(MFreeModel3d model,
                                       PolygonalMesh surface,
                                       RigidTransform3d pos,
                                       int nNodes,
                                       int nIPnts,
                                       int[] gridRes,
                                       double rscale)

generateNodes

public static Point3d[] generateNodes(PolygonalMesh mesh,
                                      int[] res,
                                      int nPoints)

createBeam

public static MFreeModel3d createBeam(MFreeModel3d model,
                                      RadialWeightFunction.RadialWeightFunctionType fType,
                                      MFreeShapeFunction.MFreeShapeFunctionType sType,
                                      double[] size,
                                      int[] res,
                                      int[] ipntRes,
                                      double rfactor)

createModel

public static MFreeModel3d createModel(MFreeModel3d model,
                                       Point3d[] nodeLocs,
                                       double nodeRad,
                                       Point3d[] ipntLoc,
                                       PolygonalMesh surface)

createModel

public static MFreeModel3d createModel(MFreeModel3d model,
                                       Point3d[] nodeLocs,
                                       double nodeRad,
                                       Point3d[] ipntLoc,
                                       RadialWeightFunction.RadialWeightFunctionType fType,
                                       MFreeShapeFunction.MFreeShapeFunctionType sType,
                                       PolygonalMesh surface)

createPairedModel

public static MFreeModel3d createPairedModel(MFreeModel3d model,
                                             Point3d[] nodeLocs,
                                             double nodeRad,
                                             Point3d[] ipntLoc,
                                             RadialWeightFunction.RadialWeightFunctionType fType,
                                             MFreeShapeFunction.MFreeShapeFunctionType sType,
                                             PolygonalMesh surface)

createPairedModel

public static MFreeModel3d createPairedModel(MFreeModel3d model,
                                             java.util.List<MFreeNode3d> nodes,
                                             PolygonalMesh surface,
                                             CubaturePoint3d[] cpnts)

createModel

public static MFreeModel3d createModel(MFreeModel3d model,
                                       java.util.List<MFreeNode3d> nodes,
                                       PolygonalMesh surface,
                                       CubaturePoint3d[] cpnts)

trimEmptyElements

public static java.util.ArrayList<MFreeElement3d> trimEmptyElements(java.util.List<MFreeElement3d> elemList)

createIntegrationPoints

public static MFreeIntegrationPoint3d[] createIntegrationPoints(CubaturePoint3d[] cpnts,
                                                                BVTree nodeTree)

distributePairedIPoints

public static void distributePairedIPoints(MFreeElement3d[] elemList,
                                           MFreeIntegrationPoint3d[] ipnts,
                                           IntegrationData3d[] idata,
                                           BVTree elemTree,
                                           double tol)

distributeIPointsFromMap

public static void distributeIPointsFromMap(java.util.HashMap<MFreeIntegrationPoint3d,MFreeElement3d> pntMap)

distributePartitionedIPoints

public static void distributePartitionedIPoints(DirectedGraph<MFreeElement3d,MFreeNode3d> connectivity,
                                                MFreeIntegrationPoint3d[] ipnts,
                                                IntegrationData3d[] idata,
                                                BVTree elemTree,
                                                double tol)

addWarpingPoints

public static void addWarpingPoints(java.util.List<MFreeElement3d> elems,
                                    BVTree nodeTree)

createWarpingPoint

public static MFreeIntegrationPoint3d createWarpingPoint(MFreeElement3d elem,
                                                         Point3d pos,
                                                         BVTree nodeTree)

createPartitionedElements

public static java.util.ArrayList<MFreeElement3d> createPartitionedElements(java.util.List<MFreeNode3d> nodes,
                                                                            DirectedGraph<int[],java.lang.Integer> connectivityGraph)

createPairedElements

public static java.util.ArrayList<MFreeElement3d> createPairedElements(java.util.List<MFreeNode3d> nodes,
                                                                       boolean[][] iChart)

createNodeMeshes

public static void createNodeMeshes(java.util.List<MFreeNode3d> nodes,
                                    BVTree nodeTree,
                                    PolygonalMesh surface)

createPairedElemMeshes

public static void createPairedElemMeshes(java.util.List<MFreeElement3d> elemList,
                                          BVTree nodeTree)

createPartitionedElemMeshes

public static void createPartitionedElemMeshes(java.util.List<MFreeElement3d> elemList,
                                               java.util.List<MFreeNode3d> nodeList,
                                               BVTree nodeTree,
                                               DirectedGraph<int[],java.lang.Integer> connectivityGraph)

findPairdElementsContaining

public static java.util.ArrayList<MFreeElement3d> findPairdElementsContaining(Point3d pnt,
                                                                              BVTree bvtree,
                                                                              double tol)

findPartitionedElementsContaining

public static java.util.ArrayList<MFreeElement3d> findPartitionedElementsContaining(Point3d pnt,
                                                                                    DirectedGraph<MFreeElement3d,MFreeNode3d> connectivity,
                                                                                    BVTree bvtree,
                                                                                    double tol)

convertConnectivity

public static DirectedGraph<MFreeElement3d,MFreeNode3d> convertConnectivity(java.util.List<MFreeNode3d> nodes,
                                                                            java.util.List<MFreeElement3d> elems,
                                                                            DirectedGraph<int[],java.lang.Integer> graph)

findPairedElementsContaining

public static java.util.ArrayList<MFreeElement3d> findPairedElementsContaining(Point3d pnt,
                                                                               BVTree bvtree,
                                                                               double tol)

findNodesContaining

public static java.util.ArrayList<MFreeNode3d> findNodesContaining(Point3d pnt,
                                                                   BVTree bvtree,
                                                                   double tol)

updatePointCoordinates

public static void updatePointCoordinates(java.util.List<? extends MFreePoint3d> pnts,
                                          BVTree nodeTree,
                                          double tol)

convertToMFreeMesh

public static MeshBase convertToMFreeMesh(MeshBase orig,
                                          BVTree nodeTree,
                                          double tol)

cloneFem

public static MFreeModel3d cloneFem(MFreeModel3d model,
                                    FemModel3d fem)

buildIntersectionChart

public static boolean[][] buildIntersectionChart(java.util.List<MFreeNode3d> nodeList)

buildIntersectionChart

public static boolean[][] buildIntersectionChart(MFreeNode3d[] nodeArray)

createPartitionedElementsFromPoints

public static <A extends MFreePoint3d> java.util.ArrayList<MFreeElement3d> createPartitionedElementsFromPoints(A[] pnts,
                                                                                                               java.util.HashMap<A,MFreeElement3d> pntMap)