public class PointSkinAttachment extends PointAttachment implements ScalableUnits
 The class maintains a list of Connection objects for each
 underlying dynamic component (such as a Frame or
 FemNode3d) that has a weighted influence on the point's final
 value.
| Modifier and Type | Class and Description | 
|---|---|
| class  | PointSkinAttachment.BaseConnection | 
| class  | PointSkinAttachment.ConnectionBase class for connections associated with this attachment. | 
| class  | PointSkinAttachment.FemDisplacementConnection | 
| class  | PointSkinAttachment.FrameConnection | 
| class  | PointSkinAttachment.ParticleConnection | 
ModelComponent.NavpanelVisibilityenforceUniqueCompositeNames, enforceUniqueNames, myNumber, myProps, NULL_OBJ, useCompactPathNamesCOPY_REFERENCES| Constructor and Description | 
|---|
| PointSkinAttachment()Creates an empty PointSkinAttachment. | 
| PointSkinAttachment(SkinMeshBody skinMesh)Creates an empty PointSkinAttachment to associated with a specific
 skinMesh. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addBaseConnection(double weight)Adds a base point connection to this attachment. | 
| void | addFemDisplacementConnection(FemNode3d node,
                            double weight)Adds a displacment-based FemNode connection to this attachment. | 
| void | addForce(Vector3d f) | 
| void | addFrameConnection(SkinMeshBody.FrameInfo frameInfo,
                  double weight)Adds a Frame connection to this attachment. | 
| void | addMassToMaster(MatrixBlock mblk,
               MatrixBlock sblk,
               int idx) | 
| void | addMassToMasters() | 
| void | addParticleConnection(Particle particle,
                     double weight)Adds an arbitrary particle connection to this attachment. | 
| void | applyForces() | 
| void | clearConnections()Clear the connections used by this attachment. | 
| PointSkinAttachment | copy(int flags,
    java.util.Map<ModelComponent,ModelComponent> copyMap)Create a copy of this component. | 
| void | finalizeConnections()Should be called after all connections have been added. | 
| Point3d | getBasePosition()Gets the base position for this attachment. | 
| PointSkinAttachment.Connection | getConnection(int idx)Gets a specific connection used by this attachent. | 
| void | getCurrentPos(Vector3d pos)Returns the current position of the attached point, in world coordinates. | 
| void | getCurrentVel(Vector3d vel,
             Vector3d dvel) | 
| boolean | getDerivative(double[] buf,
             int idx) | 
| DynamicComponent | getMaster(int idx)Returns the underlying master component for a connection used by this
 attachment. | 
| SkinMeshBody | getSkinMesh()Returns the SkinMeshBody associated with this attachment. | 
| void | getSoftReferences(java.util.List<ModelComponent> refs)Appends all soft references for this component to a list. | 
| double | getWeight(int idx)Returns the weight for a connection used by this attachment. | 
| void | mulSubG(MatrixBlock D,
       MatrixBlock B,
       int idx)Computes | 
| void | mulSubGT(double[] ybuf,
        int yoff,
        double[] xbuf,
        int xoff,
        int idx)Computes | 
| void | mulSubGT(MatrixBlock D,
        MatrixBlock B,
        int idx)Computes | 
| int | numConnections()Returns the number of connections (to master components) used by this
 attachment. | 
| void | postscan(java.util.Deque<ScanToken> tokens,
        CompositeComponent ancestor)Performs any required post-scanning for this component. | 
| void | scaleBaseWeights(double s,
                PointSkinAttachment.Connection[] connections) | 
| void | scaleDistance(double s)Scales all distance coordinates. | 
| void | scaleMass(double s)Scales all mass units. | 
| void | setBasePosition(Vector3d pos)Sets the base position for this attachment. | 
| void | setPoint(Point pnt) | 
| void | setSkinMesh(SkinMeshBody skinMesh)Sets the SkinMeshBody associated with this attachment. | 
| void | setWeight(int idx,
         double w)Sets the weight for a connection used by this attachment. | 
| void | trimToSize()Minimizes the connection storage space. | 
| void | updateAttachment()Update attachment to reflect changes in the slave state. | 
| void | updatePosStates() | 
| void | updateReferences(boolean undo,
                java.util.Deque<java.lang.Object> undoInfo)May be called by the system if any of the soft references for
 this component are removed from the the component hierarchy. | 
| void | updateVelStates() | 
| void | writeItems(java.io.PrintWriter pw,
          NumberFormat fmt,
          CompositeComponent ancestor) | 
addTargetJacobian, getCopyReferences, getMasterBlocks, getMasters, getPoint, getSlave, getSlaveSolveIndex, invalidateMasters, isDuplicatable, numMastersaddAttachmentJacobian, addBackRefs, addSolveBlocks, clone, connectToHierarchy, containsLoop, containsLoops, containsMaster, createOrderedList, disconnectFromHierarchy, getHardReferences, oneMasterActive, reduceConstraints, reduceMass, reduceRowMatrix, removeBackRefscheckFlag, checkName, checkNameUniqueness, clearFlag, createTempFlag, getAllPropertyInfo, getChildren, getGrandParent, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, hasChildren, hasState, isConnectedToHierarchy, isFixed, isMarked, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, scan, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setSelected, writeequals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitconnectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, scan, setFixed, setMarked, setName, setNumber, setParent, setSelectedgetAllPropertyInfo, getPropertygetChildren, hasChildrenisWritable, writepublic PointSkinAttachment()
public PointSkinAttachment(SkinMeshBody skinMesh)
public void setPoint(Point pnt)
public SkinMeshBody getSkinMesh()
public void setSkinMesh(SkinMeshBody skinMesh)
public Point3d getBasePosition()
public void setBasePosition(Vector3d pos)
public int numConnections()
public void clearConnections()
public PointSkinAttachment.Connection getConnection(int idx)
idx - index of the connection. Must be in the range 0 to
 numConnections().public double getWeight(int idx)
idx - index of the connection. Must be in the range 0 to
 numConnections().public void setWeight(int idx,
                      double w)
idx - index of the connection. Must be in the range 0 to
 numConnections().public DynamicComponent getMaster(int idx)
null is returned.idx - index of the connection. Must be in the range 0 to
 numConnections().public void addFrameConnection(SkinMeshBody.FrameInfo frameInfo, double weight)
SkinMeshBody.getFrameBlending()).frameInfo - FrameInfo structure within the associated SkinMeshBody.weight - connection weight.public void addFemDisplacementConnection(FemNode3d node, double weight)
node - FemNodeweight - connection weight.public void addBaseConnection(double weight)
getBasePosition() will be used to compute a
 weighted contribution to the point value.weight - connection weight.public void addParticleConnection(Particle particle, double weight)
particle - particle associated with the attachment.weight - connection weight.public void trimToSize()
public void finalizeConnections()
public void getCurrentPos(Vector3d pos)
PointAttachmentgetCurrentPos in class PointAttachmentpos - used to return current point positionpublic void updatePosStates()
updatePosStates in class DynamicAttachmentpublic void updateVelStates()
updateVelStates in class DynamicAttachmentpublic void applyForces()
applyForces in class PointAttachmentpublic void addForce(Vector3d f)
public void mulSubGT(MatrixBlock D, MatrixBlock B, int idx)
DynamicAttachment
       T
 D -= G  B
 
 where D and B are matrices associated with master and slave components,
 respectively, and G is the constraint matrix for the attachment.D - dependent matrix associated with a master componentB - matrix associated with a slave componentpublic void mulSubG(MatrixBlock D, MatrixBlock B, int idx)
DynamicAttachmentD -= B Gwhere D and B are matrices associated with master and slave components, respectively, and G is the constraint matrix for the attachment.
D - dependent matrix associated with a master componentB - matrix associated with a slave componentpublic void mulSubGT(double[] ybuf,
                     int yoff,
                     double[] xbuf,
                     int xoff,
                     int idx)
DynamicAttachment
       T
 y -= G  x
 
 where y and x are vectors associated with master and slave components,
 respectively, and G is the constraint matrix for the attachment.ybuf - buffer into which to store resultyoff - offset into ybufxbuf - buffer containing right hand side vectorxoff - offset into xbufidx - master component indexpublic void updateAttachment()
DynamicAttachmentupdateAttachment in class DynamicAttachmentpublic void addMassToMasters()
addMassToMasters in class DynamicAttachmentpublic void addMassToMaster(MatrixBlock mblk, MatrixBlock sblk, int idx)
public void postscan(java.util.Deque<ScanToken> tokens, CompositeComponent ancestor) throws java.io.IOException
ModelComponentscan() method and stored in the token queue.
 The most common use of this method is to resolve the paths
 of component references, which may not have been created
 at the time of the initial scan() call.postscan in interface ModelComponentpostscan in class ModelComponentBasetokens - token information that was stored during 
 scan().ancestor - ancestor component with respect to which
 reference component paths are defined.java.io.IOException - if an error is encountered (such as a reference to a
 non-existent component)public void writeItems(java.io.PrintWriter pw,
                       NumberFormat fmt,
                       CompositeComponent ancestor)
                throws java.io.IOException
writeItems in class PointAttachmentjava.io.IOExceptionpublic boolean getDerivative(double[] buf,
                             int idx)
getDerivative in class DynamicAttachmentpublic void getSoftReferences(java.util.List<ModelComponent> refs)
ModelComponentBaseupdateReferences() method will
 be called to update its internal reference information.getSoftReferences in interface ModelComponentgetSoftReferences in class ModelComponentBaserefs - list to which soft references are appendedpublic void scaleDistance(double s)
ScalableUnitsscaleDistance in interface ScalableUnitss - scaling factorpublic void scaleMass(double s)
ScalableUnitsscaleMass in interface ScalableUnitss - scaling factorpublic PointSkinAttachment copy(int flags, java.util.Map<ModelComponent,ModelComponent> copyMap)
CopyableComponentCOPY_REFERENCES
 is set in flags, then any component referenced
 by this component should itself be set to a copy. This
 should be done first checking copyMap for an 
 existing copy of the referenced component. If there is no existing
 copy, then a copy should be created by calling copy
 recursively and adding the new copy to copyMap.copy in interface CopyableComponentcopy in class PointAttachmentflags - flags to control the copyingcopyMap - map to possible existing instances of referenced
 componentspublic void scaleBaseWeights(double s,
                             PointSkinAttachment.Connection[] connections)
public void updateReferences(boolean undo,
                             java.util.Deque<java.lang.Object> undoInfo)
undo equal to false,
 this component should then examine its soft references and
 use ComponentUtils.isConnected()
 to determine which of them have been disconnected from the hierarchy.
 Disconnected references should be removed, and sufficient information
 should be appended to undoInfo to allow this update
 to be undone if this method is called later with undo 
 equal to true. When undoing an update, the undo
 information should be removed from the front of undoInfo.updateReferences in interface ModelComponentupdateReferences in class ModelComponentBaseundo - if true, indicates that the most
 recent reference update should be undone, using the supplied
 undo information.undoInfo - if undo is false, should be used
 to store information allowing the reference update to be undone.
 Otherwise, if undo is true, then this
 supplied information to undo the most recent update.