harmonic.cad.shapes
Class MultiSectionSweepShape

java.lang.Object
  |
  +--harmonic.mz.data.ModelNode
        |
        +--harmonic.mz.data.ShapeNode
              |
              +--harmonic.cad.shapes.CAD_ShapeNode
                    |
                    +--harmonic.cad.shapes.CAD_SurfaceShapeNode
                          |
                          +--harmonic.cad.shapes.SolidShape
                                |
                                +--harmonic.cad.shapes.MultiSectionSweepShape
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 MultiSectionSweepShape
extends SolidShape

This is a multi section sweep. This is a generalization of the regular path sweep that alows multiple sections to be specified. The resulting solid will have a surface excatly on the given sections. In between these sections, more sections are interpolated. This also requires the specification of guide points that contol the twist of the sweep between the sections, since without this there is know way of knowing what points corispond on the given sections. One guide point should be given for every section.


Field Summary
 harmonic.mz.data.fields.PointSetField guidePoints
          One guide point per section
static int NORMAL_SWEEP
           
static int PARALLEL_SWEEP
           
 harmonic.mz.data.fields.NodeSetField path
          Single path to sweep sections over
 harmonic.mz.data.fields.NodeSetField section
          Sections
 harmonic.mz.data.fields.ExclusiveIntField splineType
          This sets how the sections are interpolated
 harmonic.mz.data.fields.ExclusiveIntField sweepType
          Sweeping method, one of the enumerations of this class
 
Fields inherited from class harmonic.cad.shapes.CAD_SurfaceShapeNode
bClosed, bNormalsValid, bSurfaceValid, debugPoints, edgePainter, fastGeom, fastPainter, fillColor, fillPainter, idealEdges, lineColor, surface, surfaceGeom, surfaceType
 
Fields inherited from class harmonic.cad.shapes.CAD_ShapeNode
bDiscreet, bEditing, bRoughPolygonization, 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
MultiSectionSweepShape()
          Constructs a MultiSectionSweepShape without adding to database
MultiSectionSweepShape(harmonic.mz.data.ShapeNode[] sectionSet, harmonic.mz.data.ShapeNode path, harmonic.mz.data.fields.PointSetField points, int sweepType, int splineType, int cmode)
          Constructs a MultiSectionSweepShape and adds to database with undo if params are ok
 
Method Summary
 java.lang.String areFieldsValid()
           
 harmonic.meshGeom.geom.Geom calcGeom_Polygons()
           
 harmonic.meshGeom.geom.Geom calcGeom_Regions()
           
 harmonic.meshGeom.geom.Geom calcGeom()
           
 harmonic.meshGeom.geom.ArrayGeom calcIdealEdges(harmonic.meshGeom.geom.ArrayGeom geom)
           
 float calcLengthBetween(harmonic.meshGeom.geom.PolygonGeom polygon, int i0, int i1, float s0, float s1)
           
 float[] calcPathLengths(harmonic.meshGeom.geom.PolygonGeom polygon)
           
 void calcPointAtLength(harmonic.meshGeom.math.Pnt3f rpoint, float[] vert, float nVert, int begIndex, float begParam, float stopLength)
           
 int getChildRequirements(harmonic.mz.data.ShapeNode child)
           
 
Methods inherited from class harmonic.cad.shapes.SolidShape
expectedValidationTime, makeContextMenu, mayValidate, reverse
 
Methods inherited from class harmonic.cad.shapes.CAD_SurfaceShapeNode
calcFastGeom, calcIdealShading, getEdges, getGDIEdges, nodeChanged, purge, purgeFinal, validate, validateAttribs, validateNormals, validateSurface
 
Methods inherited from class harmonic.cad.shapes.CAD_ShapeNode
addField, calcRoughPolygonization, 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, fastPainterCount, findPointSnaps, getCachedGeometries, getCachedGeometry, getCoordSystem, getDataTransfer, getDataTransferTypes, getDragable, getFastPainter, getFastPainters, getFitable, getGeom, getGeom, getGeomAt, getGeoms, getGeoms, getGeoms, getGlobalPerLocal, getILAEdges, getMoveableCoordSystem, getObjectChildren, getPainter, getPainter, getPainters, getPainters, getPainters, getPaintOnTransient, getPickable, getPointSnaps, 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, painterCount, processMouseDragged, processMouseEntered, processMouseExited, processMouseMoved, processMousePressed, processMouseReleased, 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, validateGeometry, 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, checkFileRead, 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, 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, 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

section

public harmonic.mz.data.fields.NodeSetField section
Sections


path

public harmonic.mz.data.fields.NodeSetField path
Single path to sweep sections over


guidePoints

public harmonic.mz.data.fields.PointSetField guidePoints
One guide point per section


sweepType

public harmonic.mz.data.fields.ExclusiveIntField sweepType
Sweeping method, one of the enumerations of this class


splineType

public harmonic.mz.data.fields.ExclusiveIntField splineType
This sets how the sections are interpolated


PARALLEL_SWEEP

public static final int PARALLEL_SWEEP
See Also:
Constant Field Values

NORMAL_SWEEP

public static final int NORMAL_SWEEP
See Also:
Constant Field Values
Constructor Detail

MultiSectionSweepShape

public MultiSectionSweepShape()
Constructs a MultiSectionSweepShape without adding to database


MultiSectionSweepShape

public MultiSectionSweepShape(harmonic.mz.data.ShapeNode[] sectionSet,
                              harmonic.mz.data.ShapeNode path,
                              harmonic.mz.data.fields.PointSetField points,
                              int sweepType,
                              int splineType,
                              int cmode)
Constructs a MultiSectionSweepShape and adds to database with undo if params are ok

Method Detail

areFieldsValid

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

calcPathLengths

public float[] calcPathLengths(harmonic.meshGeom.geom.PolygonGeom polygon)

calcPointAtLength

public void calcPointAtLength(harmonic.meshGeom.math.Pnt3f rpoint,
                              float[] vert,
                              float nVert,
                              int begIndex,
                              float begParam,
                              float stopLength)

calcLengthBetween

public float calcLengthBetween(harmonic.meshGeom.geom.PolygonGeom polygon,
                               int i0,
                               int i1,
                               float s0,
                               float s1)

calcGeom

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

calcGeom_Polygons

public harmonic.meshGeom.geom.Geom calcGeom_Polygons()

calcGeom_Regions

public harmonic.meshGeom.geom.Geom calcGeom_Regions()

calcIdealEdges

public harmonic.meshGeom.geom.ArrayGeom calcIdealEdges(harmonic.meshGeom.geom.ArrayGeom geom)
Overrides:
calcIdealEdges in class CAD_SurfaceShapeNode

getChildRequirements

public int getChildRequirements(harmonic.mz.data.ShapeNode child)
Overrides:
getChildRequirements in class harmonic.mz.data.ShapeNode