harmonic.cad.shapes
Class PolygonFilletEffector

java.lang.Object
  |
  +--harmonic.mz.data.ModelNode
        |
        +--harmonic.cad.shapes.PolygonFilletEffector
All Implemented Interfaces:
java.awt.event.ActionListener, harmonic.mz.data.DataNode, harmonic.mz.gui.Documentable, harmonic.mz.data.Effector, java.util.EventListener, harmonic.mz.data.Interpolater, harmonic.meshGeom.math.MarkableObject, harmonic.mz.event.NodeListener

public class PolygonFilletEffector
extends harmonic.mz.data.ModelNode
implements harmonic.mz.data.Effector

Fillets corners of a polygon. As for now, they all have the same fillet radius. For multiple radi, multiple PolygonCornerFilletShape must be used. The vertex field set contains a list of indicies to the user verticies of the filleted geometry. For each of these, get a vertex index, 'ip'. Insert the fillet, and do the next index. Since the inserted arc will offset the vertex indicies, use the following trick: get all vertex indicies to fillet at the start, and sort. Then reverse them, and go through this way. Offsets will have no effect on the previous indicies. And this can suceed if there are no listed vertices to fillet; it just copyies from the original geometry TODO: this only works for sharp corners with user lines on both sides would be nice if it worked on curves too.


Field Summary
 harmonic.mz.data.fields.IntField circleEdges
          Polygonization of fillet arcs
 harmonic.mz.data.fields.NodeSetField polygon
          Polygon to fillet
 harmonic.mz.data.fields.ScalarField radius
          Radius of fillets
 VertexSetField vertex
          User vertex keys
 
Fields inherited from class harmonic.mz.data.ModelNode
_fileRoot_, _thread_, ATTRIB_CONTROL_WIDGET, ATTRIB_LISTABLE, ATTRIB_PRESENTABLE, ATTRIB_PRIVATE, ATTRIB_REMOVEABLE, ATTRIB_RENAMEABLE, ATTRIB_SHOW_CONTEXT_MENU, ATTRIB_TYPE_FILTER, ATTRIB_USERGROUP, ATTRIB_VALUE_GROUP, ATTRIB_VE_LISTENER, bCustomCS, bDebug, bValid, name
 
Constructor Summary
PolygonFilletEffector()
           
PolygonFilletEffector(PolygonShape polygon)
           
 
Method Summary
 void apply()
           
static harmonic.meshGeom.geom.PolygonGeom applyFillets(PolygonShape polyDef, java.util.Vector effectors)
           
 void checkFileRead()
           
 void selfNodeChanged(harmonic.mz.event.NodeEvent event)
           
 void valChanged()
           
 
Methods inherited from class harmonic.mz.data.ModelNode
actionPerformed, addAll, addAlphaed, addField, addField, addField, addFields, addNetworkInput, addNetworkOutput, addNode, addNodeListener, addNodeListener, addNodes, addNodes, addToCurrent, addToGlobals, addToNetworkEditor, addToTemps, addWithUndo, allFieldsAreFinal, applyDataTransfer, areFieldsValid, assignFromMetaFields, assignFromXMLAttributes, assignFromXMLString, assignToMetaFields, assignToXMLAttributes, assignToXMLString, at, bind, canSelect, castSelection, checkNetworkInput, childCount, clean, clearAttrib, clearNotified, compare, copyFrom, createControlWidget, createCopy, createXMLElement, deepCopy, defeatNodeEvents, disableEvents, enableEvents, expectedValidationTime, fileRoot, finalize, findFieldElement, findNode, fromXMLNodes, getAttrib, getBound, getCatagory, getControlWidget, getCurrentNames, getDataTransfer, getDataTransferTypes, getDeleted, getDirectInputs, getDirectOutputs, getEffectors, getEntryListener, getErrorState, getFilterType, getFullName, getHandles, getInstanceURL, getInterpolater, getIsLeaf, getListable, getMark, getMetaFields, getName, getNodeChildren_V, getNodeChildren, getNodeID, getNodeParent, getObjectRep, getPresentable, getPrivate, getReferencePoolName, getRemoteOwner, getRemoveable, getRenameable, getSaveable, getSavedChildren, getSelect, getSeparateDirectInputs, getSeparateDirectOutputs, getSequenced, getSerialNo, getTags, getTentativeSelect, getTransformable, getTransformableParent, getTransient, getTreeName, getTypeImage, getTypeURL, getUnfoldedChildren, getUpdateTime, getUserGroup, getValidates, getValue, getXMLNodes, hasDependants, hasExternalRef, hashKey, hasValidationLock, hideControlWidget, indexOf, initControlWidget, insertNode, interpolate_Linear, interpolate_Quadratic, invalidate, isField, isFinal, isInSubtree, isInTree, isLinked, isNotified, isPurged, isSet, isTemporary, isValid, linkedTo, linksChildren, makeContextMenu, makeFixed, makePrototype, makeReferenced, makeUnreferenced, makeVisibleInGUI, markNotified, mayValidate, nodeChanged, notifyListeners, postAssignFromXMLElement, preAssignToXMLElement, printChildren, printTags, printTree, printTree, purge, purgeFinal, pythonString, remove, removeAll, removeAll, removeHandles, removeNetworkInput, removeNetworkOutput, removeNode, removeNode, removeNode, removeNodeListener, replace, set, setActualName, setAttrib, setBound, setCatagory, setChildrenExcept, setCoordSystem, setCurrentControlWidget, setCurrentNames, setDeleted, setEntryListener, setErrorState, setFromPrototype, setIsField, setIsLeaf, setIsSet, setListable, setMark, setMetaFields, setName, setNodeParent, setPresentable, setPrivate, setRemoteOwner, setRemoveable, setRenameable, setSaveable, setSelect, setSelect, setSequenced, setSerialNo, setTentativeSelect, setTentativeSelect, setToLink, setTransient, setTransientChildren, setUpdateTime, setUserGroup, setValidates, setValidationLock, setValue, setValueGroup, showControlWidget, showControlWidget, showControlWidget, showHandles, startRename, tag, toString, unlinkListeners, unmarkNotified, untag, updateBindable, valChanged, validate, valueString
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

radius

public harmonic.mz.data.fields.ScalarField radius
Radius of fillets


vertex

public VertexSetField vertex
User vertex keys


circleEdges

public harmonic.mz.data.fields.IntField circleEdges
Polygonization of fillet arcs


polygon

public harmonic.mz.data.fields.NodeSetField polygon
Polygon to fillet

Constructor Detail

PolygonFilletEffector

public PolygonFilletEffector()

PolygonFilletEffector

public PolygonFilletEffector(PolygonShape polygon)
Method Detail

checkFileRead

public void checkFileRead()
Overrides:
checkFileRead in class harmonic.mz.data.ModelNode

valChanged

public void valChanged()
Overrides:
valChanged in class harmonic.mz.data.ModelNode

selfNodeChanged

public void selfNodeChanged(harmonic.mz.event.NodeEvent event)
Overrides:
selfNodeChanged in class harmonic.mz.data.ModelNode

apply

public void apply()
Specified by:
apply in interface harmonic.mz.data.Effector

applyFillets

public static harmonic.meshGeom.geom.PolygonGeom applyFillets(PolygonShape polyDef,
                                                              java.util.Vector effectors)