harmonic.cad.shapes
Class PolygonCornerFilletShape

java.lang.Object
  |
  +--harmonic.mz.data.ModelNode
        |
        +--harmonic.mz.data.ShapeNode
              |
              +--harmonic.cad.shapes.CAD_ShapeNode
                    |
                    +--harmonic.cad.shapes.CAD_LineShapeNode
                          |
                          +--harmonic.cad.shapes.PolygonShape
                                |
                                +--harmonic.cad.shapes.PolygonCornerRoundShape
                                      |
                                      +--harmonic.cad.shapes.PolygonCornerFilletShape
All Implemented Interfaces:
java.awt.event.ActionListener, harmonic.mz.data.DataNode, harmonic.mz.gui.Documentable, java.util.EventListener, harmonic.mz.data.Interpolater, harmonic.meshGeom.math.MarkableObject, harmonic.mz.event.NodeListener, harmonic.viewer3D.ShapeOwner, harmonic.mz.data.Transformable

public class PolygonCornerFilletShape
extends PolygonCornerRoundShape

This has been replace by PolygonFilletEffector Fillet 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
           
 harmonic.mz.data.fields.ScalarField radius
           
 
Fields inherited from class harmonic.cad.shapes.PolygonCornerRoundShape
polygon, vertex
 
Fields inherited from class harmonic.cad.shapes.PolygonShape
effField, geom, origGeom
 
Fields inherited from class harmonic.cad.shapes.CAD_LineShapeNode
lineColor, lineWidth, painter
 
Fields inherited from class harmonic.cad.shapes.CAD_ShapeNode
bDiscreet, bEditing, bRoughPolygonization, idealEdges, type
 
Fields inherited from class harmonic.mz.data.ShapeNode
ANY_GEOM, ARRAY_GEOM, ATTRIBUTE_FIELD_TYPE, bAssignMaterialColors, bAttribsValid, bBaseGeometryValid, bSelectionValid, bTSelectionValid, bVisibilityValid, coordSystem, COORDSYSTEM_FIELD_TYPE, existingPainters, fastPainters, GEOMETRY_FIELD_TYPE, LINES_GEOM, localKludge, material, painters, POINT_GEOM, POLYGON_GEOM, REGION_GEOM, SOLID_GEOM, SURFACE_GEOM, transparency, visibility
 
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
PolygonCornerFilletShape()
           
 
Method Summary
 java.lang.String areFieldsValid()
           
 harmonic.meshGeom.geom.Geom calcGeom()
           
 void checkFileRead()
           
 void getPointSnaps(java.lang.String type, java.util.Vector points)
           
 boolean mayValidate()
           
 
Methods inherited from class harmonic.cad.shapes.PolygonCornerRoundShape
getUserVerticies
 
Methods inherited from class harmonic.cad.shapes.PolygonShape
addEffector, applyEffectors, calcPointAt, calcPolygonProps, calcTangentAt, childPointSnaps, getEffectors, getGeom, getUserVertexKey, isClosed, makeContextMenu, nCurve, pointAt, polyAt, polyPainterAt, printUserVerticies, purgeFinal, removeEffector, tangentAt, validateGeometry
 
Methods inherited from class harmonic.cad.shapes.CAD_LineShapeNode
calcRoughPolygonization, validate, validateAttribs
 
Methods inherited from class harmonic.cad.shapes.CAD_ShapeNode
addField, checkFields, setToLink, showPointHandles
 
Methods inherited from class harmonic.mz.data.ShapeNode
addFastGeometry, addFastGeometry, addFastGeometry, addFastGeometry, addFastPainter, addGeometry, addGeometry, addGeometry, addGeometry, addNetworkOutput, addPainter, addWithUndo, beginTransform, bigValidation, calcGeometricProps, calcSurfaceArea, calcVolume, checkRequirements, clearFastGeometries, clearFastPainters, clearGeometries, clearGeometryCache, clearPainters, defaultPickPriority, endTransform, expectedValidationTime, fastPainterCount, findPointSnaps, getCachedGeometries, getCachedGeometry, getChildRequirements, getCoordSystem, getDataTransfer, getDataTransferTypes, getDragable, getEdges, getFastPainter, getFastPainters, getFitable, getGDIEdges, getGeom, getGeom, getGeomAt, getGeoms, getGeoms, getGeoms, getGlobalPerLocal, getILAEdges, getMoveableCoordSystem, getObjectChildren, getPainter, getPainter, getPainters, getPainters, getPainters, getPaintOnTransient, getPickable, getRequirements, getSerializeGeometry, getShapeDefOwner, getTransformable, getTypeImage, getViewpointDependantGeometry, getVisibility, hasFixedCS, hasGeometryLock, hide, hide, invalidate, invalidateAttribs, invalidateCoordSystem, invalidateGeometry, invalidateGeometryDependants, isAttribsValid, isGeomComposite, isGeometryValid, isSelectionValid, isTentativeSelectionValid, isVisibilityValid, makeContextMenu_ShapeFns, makeContextMenu, nodeChanged, painterCount, processMouseDragged, processMouseEntered, processMouseExited, processMouseMoved, processMousePressed, processMouseReleased, purge, removeFastPainter, removePainter, scaleCoordSystem, selfNodeChanged, setDragable, setExclusiveVisibility, setFieldCoordSystems, setFitable, setMoveableCoordSystem, setPaintOnTransient, setPickable, setPickPriority, setSelect, setSerializeGeometry, setTempVisibility, setTentativeSelect, setTransform, setTransient, setViewpointDependantGeometry, setVisibility, shouldSpawnThread, show, show, transferAttributes, transferAttributes, transform, transformFields, translateCoordSystem, validateSelection, validateTransform
 
Methods inherited from class harmonic.mz.data.ModelNode
actionPerformed, addAll, addAlphaed, addField, addField, addField, addFields, addNetworkInput, addNode, addNodeListener, addNodeListener, addNodes, addNodes, addToCurrent, addToGlobals, addToNetworkEditor, addToTemps, allFieldsAreFinal, applyDataTransfer, assignFromMetaFields, assignFromXMLAttributes, assignFromXMLString, assignToMetaFields, assignToXMLAttributes, assignToXMLString, at, bind, canSelect, castSelection, checkNetworkInput, childCount, clean, clearAttrib, clearNotified, compare, copyFrom, createControlWidget, createCopy, createXMLElement, deepCopy, defeatNodeEvents, disableEvents, enableEvents, fileRoot, finalize, findFieldElement, findNode, fromXMLNodes, getAttrib, getBound, getCatagory, getControlWidget, getCurrentNames, getDeleted, getDirectInputs, getDirectOutputs, 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, getTransformableParent, getTransient, getTreeName, getTypeURL, getUnfoldedChildren, getUpdateTime, getUserGroup, getValidates, getValue, getXMLNodes, hasDependants, hasExternalRef, hashKey, hasValidationLock, hideControlWidget, indexOf, initControlWidget, insertNode, interpolate_Linear, interpolate_Quadratic, isField, isFinal, isInSubtree, isInTree, isLinked, isNotified, isPurged, isSet, isTemporary, isValid, linkedTo, linksChildren, makeFixed, makePrototype, makeReferenced, makeUnreferenced, makeVisibleInGUI, markNotified, notifyListeners, postAssignFromXMLElement, preAssignToXMLElement, printChildren, printTags, printTree, printTree, 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, setSequenced, setSerialNo, setTentativeSelect, setTransientChildren, setUpdateTime, setUserGroup, setValidates, setValidationLock, setValue, setValueGroup, showControlWidget, showControlWidget, showControlWidget, showHandles, startRename, tag, toString, unlinkListeners, unmarkNotified, untag, updateBindable, valChanged, valChanged, 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

circleEdges

public harmonic.mz.data.fields.IntField circleEdges
Constructor Detail

PolygonCornerFilletShape

public PolygonCornerFilletShape()
Method Detail

areFieldsValid

public java.lang.String areFieldsValid()
Overrides:
areFieldsValid in class harmonic.mz.data.ModelNode

checkFileRead

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

mayValidate

public boolean mayValidate()
Overrides:
mayValidate in class harmonic.mz.data.ModelNode

calcGeom

public harmonic.meshGeom.geom.Geom calcGeom()
Overrides:
calcGeom in class CAD_LineShapeNode

getPointSnaps

public void getPointSnaps(java.lang.String type,
                          java.util.Vector points)
Overrides:
getPointSnaps in class PolygonCornerRoundShape