harmonic.cad.shapes
Class BooleanShape

java.lang.Object
  |
  +--harmonic.mz.data.ModelNode
        |
        +--harmonic.mz.data.ShapeNode
              |
              +--harmonic.cad.shapes.CAD_ShapeNode
                    |
                    +--harmonic.cad.shapes.BooleanShape
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
Direct Known Subclasses:
IntersectionShape, SubtractionShape, UnionShape

public class BooleanShape
extends CAD_ShapeNode

Base class for three dimensional shapes. There is no assumption the resulant geometry is solid, or evan a surface. This is the single base class for all 3D boolean ops, which may produce any combination of solids, surface, lines or points.


Field Summary
 boolean bNormalsValid
           
 boolean bSurfaceValid
           
 harmonic.mz.data.fields.BooleanField compositeColor
           
 harmonic.mz.data.fields.MaterialField fillColor
           
 harmonic.mz.data.fields.MaterialField lineColor
           
 SurfaceField surface
           
 
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
BooleanShape(java.lang.String s)
           
 
Method Summary
 void calcBooleanGeom(java.util.Vector set, int[] signs)
           
 void calcGeom()
           
 boolean checkColors(harmonic.meshGeom.geom.ArrayGeom _geom, harmonic.viewer3D.PaintStruct painter)
           
 harmonic.cad.shapes.BooleanShape.GeomStruct coelleseLines(harmonic.cad.shapes.BooleanShape.GeomStruct a, harmonic.cad.shapes.BooleanShape.GeomStruct b)
           
 harmonic.cad.shapes.BooleanShape.GeomStruct coellesePoints(harmonic.cad.shapes.BooleanShape.GeomStruct a, harmonic.cad.shapes.BooleanShape.GeomStruct b)
           
 harmonic.cad.shapes.BooleanShape.GeomStruct coelleseSurfaces(harmonic.cad.shapes.BooleanShape.GeomStruct a, harmonic.cad.shapes.BooleanShape.GeomStruct b)
           
 int expectedValidationTime()
           
 harmonic.cad.shapes.BooleanShape.BooleanDefStruct generalOp(harmonic.cad.shapes.BooleanShape.BooleanDefStruct geomsA, harmonic.cad.shapes.BooleanShape.BooleanDefStruct geomsB)
           
 java.util.Vector getChildGeoms()
           
 java.lang.String getTypeName()
           
 harmonic.cad.shapes.BooleanShape.GeomStruct halfSolidOp(harmonic.cad.shapes.BooleanShape.GeomStruct solid, harmonic.cad.shapes.BooleanShape.GeomStruct nonSolid, int xSignA, int xSignB)
           
 harmonic.meshGeom.geom.IndexedLineArrayGeom makeILAGeom(harmonic.meshGeom.geom.Geom geom)
           
 harmonic.meshGeom.geom.IndexedPolygonArrayGeom makeIPAGeom(harmonic.meshGeom.geom.Geom geom)
           
 void nodeChanged(harmonic.mz.event.NodeEvent event)
           
 void removeVertexColors(harmonic.meshGeom.geom.ArrayGeom geom)
           
 harmonic.cad.shapes.BooleanShape.GeomStruct solidOp(harmonic.cad.shapes.BooleanShape.GeomStruct a, harmonic.cad.shapes.BooleanShape.GeomStruct b, int xSignA, int xSignB)
           
 void validate()
           
 void validateAttribs()
           
 void validateGeometry()
           
 void 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, 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, 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, purge, purgeFinal, 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, areFieldsValid, 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, mayValidate, 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

fillColor

public harmonic.mz.data.fields.MaterialField fillColor

lineColor

public harmonic.mz.data.fields.MaterialField lineColor

surface

public SurfaceField surface

compositeColor

public harmonic.mz.data.fields.BooleanField compositeColor

bSurfaceValid

public boolean bSurfaceValid

bNormalsValid

public boolean bNormalsValid
Constructor Detail

BooleanShape

public BooleanShape(java.lang.String s)
Method Detail

getTypeName

public java.lang.String getTypeName()

getChildGeoms

public java.util.Vector getChildGeoms()

calcGeom

public void calcGeom()

expectedValidationTime

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

nodeChanged

public void nodeChanged(harmonic.mz.event.NodeEvent event)
Specified by:
nodeChanged in interface harmonic.mz.event.NodeListener
Overrides:
nodeChanged in class harmonic.mz.data.ShapeNode

validate

public void validate()
Overrides:
validate in class harmonic.mz.data.ShapeNode

validateSurface

public void validateSurface()

validateAttribs

public void validateAttribs()
Overrides:
validateAttribs in class harmonic.mz.data.ShapeNode

validateGeometry

public void validateGeometry()
Overrides:
validateGeometry in class harmonic.mz.data.ShapeNode

calcBooleanGeom

public void calcBooleanGeom(java.util.Vector set,
                            int[] signs)

generalOp

public harmonic.cad.shapes.BooleanShape.BooleanDefStruct generalOp(harmonic.cad.shapes.BooleanShape.BooleanDefStruct geomsA,
                                                                   harmonic.cad.shapes.BooleanShape.BooleanDefStruct geomsB)

solidOp

public harmonic.cad.shapes.BooleanShape.GeomStruct solidOp(harmonic.cad.shapes.BooleanShape.GeomStruct a,
                                                           harmonic.cad.shapes.BooleanShape.GeomStruct b,
                                                           int xSignA,
                                                           int xSignB)

halfSolidOp

public harmonic.cad.shapes.BooleanShape.GeomStruct halfSolidOp(harmonic.cad.shapes.BooleanShape.GeomStruct solid,
                                                               harmonic.cad.shapes.BooleanShape.GeomStruct nonSolid,
                                                               int xSignA,
                                                               int xSignB)

coelleseSurfaces

public harmonic.cad.shapes.BooleanShape.GeomStruct coelleseSurfaces(harmonic.cad.shapes.BooleanShape.GeomStruct a,
                                                                    harmonic.cad.shapes.BooleanShape.GeomStruct b)

coelleseLines

public harmonic.cad.shapes.BooleanShape.GeomStruct coelleseLines(harmonic.cad.shapes.BooleanShape.GeomStruct a,
                                                                 harmonic.cad.shapes.BooleanShape.GeomStruct b)

coellesePoints

public harmonic.cad.shapes.BooleanShape.GeomStruct coellesePoints(harmonic.cad.shapes.BooleanShape.GeomStruct a,
                                                                  harmonic.cad.shapes.BooleanShape.GeomStruct b)

removeVertexColors

public void removeVertexColors(harmonic.meshGeom.geom.ArrayGeom geom)

makeIPAGeom

public harmonic.meshGeom.geom.IndexedPolygonArrayGeom makeIPAGeom(harmonic.meshGeom.geom.Geom geom)

makeILAGeom

public harmonic.meshGeom.geom.IndexedLineArrayGeom makeILAGeom(harmonic.meshGeom.geom.Geom geom)

checkColors

public boolean checkColors(harmonic.meshGeom.geom.ArrayGeom _geom,
                           harmonic.viewer3D.PaintStruct painter)