global defaultLineWidth defaultQueryColor = query_color defaultPeekColor = peek_color defaultNodeSize = node_size defaultLineWidth = line_width meshinfoparams = [ color.ColorParameter('query_color', defaultQueryColor, tip="Color for the queried object."), color.ColorParameter('peek_color', defaultPeekColor, tip="Color for the peeked object."), parameter.IntRangeParameter('node_size', widthRange, defaultNodeSize, tip="Node size."), parameter.IntRangeParameter('line_width', widthRange, defaultLineWidth, tip="Line thickness for element edge.") ] mainmenu.gfxdefaultsmenu.Meshes.addItem( oofmenu.OOFMenuItem("Mesh_Info", callback=_setMeshInfoParams, params=meshinfoparams, ordering=1, help="Set default parameters for Mesh Info displays.", discussion="""<para>
widthRange = (1, 10) def _setMeshCSDefaults(menuitem, color, linewidth): global defaultMeshCSColor global defaultMeshCSLineWidth defaultMeshCSColor = color defaultMeshCSLineWidth = linewidth meshcsdispparams = [ color.ColorParameter('color', value=defaultMeshCSColor, tip="In which color?"), parameter.IntRangeParameter('linewidth', widthRange, defaultMeshCSLineWidth, tip="Thickness of the line.") ] mainmenu.gfxdefaultsmenu.Meshes.addItem( oofmenu.OOFMenuItem( "Cross_Section", callback=_setMeshCSDefaults, params=meshcsdispparams, ordering=3, help="Set default parameters for Mesh Cross Section displays.", discussion="""<para> Set default parameters for <link linkend="RegisteredClass-MeshCrossSectionDisplay"><classname>MeshCrossSectionDisplays</classname></link>. See <xref linkend="RegisteredClass-MeshCrossSectionDisplay"/> for the
defaultNodeSelSize = 2 def _setNodeSelParams(menuitem, color, size): global defaultNodeSelColor global defaultNodeSelSize defaultNodeSelColor = color defaultNodeSelSize = size nodeselparams = [ color.ColorParameter('color', defaultNodeSelColor, tip="Color for the selected nodes."), parameter.IntRangeParameter('size', (0, 10), defaultNodeSelSize, tip="Node size.") ] mainmenu.gfxdefaultsmenu.Skeletons.addItem( oofmenu.OOFMenuItem( 'Selected_Nodes', callback=_setNodeSelParams, ordering=2, params=nodeselparams, help="Set default parameters for displaying selected skeleton nodes.", discussion="""<para> Set default parameters for the <xref linkend="RegisteredClass-SkeletonNodeSelectionDisplay"/>, which displays the currently selected &skel; &nodes; in the graphics
rval = (vals[0] + vals[1]) * dx / 2.0 for i in range(1, len(vals) - 1): rval += (vals[i] + vals[i + 1]) * dx / 2.0 result.append(rval) return zip(self.sample_list, result) DirectSampleSetRegistration( "Element Segments", ElementSegmentSampleSet, 40, params=[ parameter.IntRangeParameter( "n_points", # HACK: This range should actually be unbounded above. [2, 25], tip="Number of sample points per element") ], sample_type=BENTLINE, tip='Evaluate data on line segments within Elements.', discussion=xmlmenudump.loadFile( 'DISCUSSIONS/engine/reg/elementsegmentsample.xml')) #=-=#=-=#=-=#=-=#=-=#=-=#=-=#=-=#=-=#=-=#=-=#=-=#=-=# class PixelSampleSet(SampleSet): containedClass = PixelSample def __init__(self, **kwargs):
# Default parameters for boundary displays defaultSkelBdyColor = color.orange defaultSkelBdyLineWidth = 4 if config.dimension() == 2: widthRange = (0,10) else: # In vtk, line widths of 0 cause errors widthRange = (1,10) skelbdyparams = [ color.ColorParameter('color', value=defaultSkelBdyColor, tip="Color for the selected boundary."), parameter.IntRangeParameter('linewidth', widthRange, defaultSkelBdyLineWidth, tip="Line width for edge boundaries.")] if config.dimension() == 2: defaultSkelBdyGlyphSize = 10 skelbdyparams.append( parameter.IntRangeParameter('glyphsize', (0, 20), defaultSkelBdyGlyphSize, tip="Arrow size for edge boundaries.")) elif config.dimension() == 3: defaultSkelBdyGlyphSize = automatic.automatic defaultSkelBdyGlyphResolution = 20 skelbdyparams.extend( [parameter.AutoNumericParameter( 'glyphsize',
defaultSegSelWidth = 2 def _setSegSelParams(menuitme, color, line_width): global defaultSegSelColor global defaultSegSelWidth defaultSegSelColor = color defaultSegSelWidth = line_width segselparams = [ color.ColorParameter('color', defaultSegSelColor, tip="Color for the selected segments."), parameter.IntRangeParameter('line_width', (0, 10), defaultSegSelWidth, tip="Line width.") ] mainmenu.gfxdefaultsmenu.Skeletons.addItem( oofmenu.OOFMenuItem( 'Selected_Segments', callback=_setSegSelParams, ordering=3, params=segselparams, help= "Set default parameters for displaying selected skeleton segments.", discussion="""<para> Set default parameters for the <xref linkend="RegisteredClass-SkeletonSegmentSelectionDisplay"/>,
global defaultPixelInfoColor defaultPixelInfoColor = color global defaultLineWidth defaultLineWidth = line_width ## global defaultOpacity ## defaultOpacity = opacity ## if config.dimension() == 2: pixelinfoparams = [ color.ColorParameter('color', defaultPixelInfoColor, tip="Color for the queried pixel."), parameter.IntRangeParameter('line_width', widthRange, defaultLineWidth, tip="Line width.") ] ## elif config.dimension() == 3: ## pixelinfoparams = [color.ColorParameter('color', defaultPixelInfoColor, ## tip="Color for the queried pixel."), ## parameter.FloatRangeParameter('opacity', (0., 1., 0.01), ## defaultOpacity, ## tip="Tint Opacity.")] mainmenu.gfxdefaultsmenu.Pixels.addItem( oofmenu.OOFMenuItem( "Pixel_Info", callback=_setDefaultPixelParams, ordering=2, params=pixelinfoparams,
def __call__(self, ms, selection): selection.start() selection.unselect( pixelselectioncourier.ElkcepsedSelection( ms, selection.getSelectionAsGroup(), self.neighbors)) if config.dimension() == 2: registeredclass.Registration( 'Despeckle', SelectionModifier, Despeckle, ordering=2.0, params=[ parameter.IntRangeParameter( 'neighbors', (4, 8), 8, tip="Select pixels with at least this many selected neighbors") ], tip= "Recursively select all pixels with a minimum number of selected neighbors. This fills in small holes in the selection.", discussion=xmlmenudump.loadFile( 'DISCUSSIONS/common/menu/despeckle.xml')) registeredclass.Registration( 'Elkcepsed', SelectionModifier, Elkcepsed, ordering=2.1, params=[ parameter.IntRangeParameter( 'neighbors', (1, 4),
defaultMoveNodeSize = 8 def _setDefaultMoveNodeParams(menuitem, color, size): global defaultMoveNodeSize global defaultMoveNodeColor defaultMoveNodeColor = color defaultMoveNodeSize = size movenodeparams = [ color.ColorParameter('color', defaultMoveNodeColor, tip="Color for the to-be-moved node."), parameter.IntRangeParameter('size', (0, 10, 1), defaultMoveNodeSize, tip="Node size.") ] mainmenu.gfxdefaultsmenu.Skeletons.addItem( oofmenu.OOFMenuItem( 'Moving_Nodes', callback=_setDefaultMoveNodeParams, params=movenodeparams, ordering=7, help="Set default parameters for the Move Node toolbox displays.", discussion="""<para> Set default parameters governing how the <link linkend="Section-Graphics-MoveNodes">Move Nodes Toolbox</link> displays the moving node in the graphics window. See
defaultSkelInfoQueryColor = query_color defaultSkelInfoPeekColor = peek_color defaultSkelInfoNodeSize = node_size defaultSkelInfoElemWidth = element_width defaultSkelInfoSgmtWidth = segment_width skelinfoparams = [ color.ColorParameter('query_color', defaultSkelInfoQueryColor, tip="Color for the queried objects."), color.ColorParameter('peek_color', defaultSkelInfoPeekColor, tip="Color for the peeked objects."), parameter.IntRangeParameter('node_size', widthRange, defaultSkelInfoNodeSize, tip="Node size."), parameter.IntRangeParameter('element_width', widthRange, defaultSkelInfoElemWidth, tip="Line width for elements."), parameter.IntRangeParameter('segment_width', widthRange, defaultSkelInfoSgmtWidth, tip="Line width for segments.") ] mainmenu.gfxdefaultsmenu.Skeletons.addItem( oofmenu.OOFMenuItem( 'Skeleton_Info', callback=_setSkelInfoParams,
global defaultSkelInfoLineWidth defaultSkelInfoQueryColor = query_color defaultSkelInfoPeekColor = peek_color defaultSkelInfoNodeSize = node_size defaultSkelInfoLineWidth = line_width skelinfoparams = [ color.ColorParameter('query_color', defaultSkelInfoQueryColor, tip="Color for the queried objects."), color.ColorParameter('peek_color', defaultSkelInfoPeekColor, tip="Color for the peeked objects."), parameter.IntRangeParameter('node_size', widthRange, defaultSkelInfoNodeSize, tip="Node size."), parameter.IntRangeParameter( 'line_width', widthRange, defaultSkelInfoLineWidth, tip="Line width for elements, faces, and segments.") ] mainmenu.gfxdefaultsmenu.Skeletons.addItem( oofmenu.OOFMenuItem( 'Skeleton_Info', callback=_setSkelInfoParams, ordering=1, params=skelinfoparams, help="Set default parameters for the skeleton info toolbox display.",
elkcepsedDefault = 3 else: despeckleRange = (10, 26) despeckleDefault = 15 elkcepsedRange = (1, 13) elkcepsedDefault = 9 registeredclass.Registration( 'Despeckle', SelectionModifier, Despeckle, ordering=2.0, params=[ parameter.IntRangeParameter( 'neighbors', despeckleRange, despeckleDefault, tip="Select pixels with at least this many selected neighbors") ], tip= "Recursively select all pixels with a minimum number of selected neighbors. This fills in small holes in the selection.", discussion=xmlmenudump.loadFile('DISCUSSIONS/common/menu/despeckle.xml')) registeredclass.Registration( 'Elkcepsed', SelectionModifier, Elkcepsed, ordering=2.1, params=[ parameter.IntRangeParameter( 'neighbors',
def whoChanged(self): return True # call setParams if debug.debug: registeredclass.Registration( "VoxelSetBdy", display.DisplayMethod, VoxelSetBdyDisplay, ordering=1000, layerordering=display.Linear, params=[ parameter.IntParameter("category", 0), color.ColorParameter('color', color.RGBColor(0, 0.7, 0.3)), parameter.IntRangeParameter('line_width', (1, 10), 4) ], whoclasses=('Microstructure', ), tip="Display boundary loops of voxel categories") # class Normal(enum.EnumClass("Positive", "Negative", "Any")): # pass # class Direction(enum.EnumClass("X", "Y", "Z", "All")): # pass # dirDict = {Direction("X") : 0, # Direction("Y") : 1, # Direction("Z") : 2, # Direction("All") : -1}
self.operator = operator def select(self, skelctxt, selection): clist, plist = selection.trackerlist() courier = skeletonselectioncourier.FacesFromNodesCourier( skelctxt.getObject(), self.min_nodes, skelctxt.nodeselection.currentSelectionTracker(), clist, plist) self.operator.operate(selection, courier) FaceSelectionModRegistration( 'From Selected Nodes', FaceFromSelectedNodes, params=[ parameter.IntRangeParameter( 'min_nodes', (1, 3), value=1, tip="Select faces with at least this many selected nodes."), selectionoperators.SelectionOperatorParam('operator') ], ordering=_selectFromNodesOrdering, tip="Select every face containing selected nodes.") #=--=##=--=##=--=##=--=##=--=##=--=##=--=##=--=##=--=##=--=##=--=##=--=# class FaceFromSelectedSegments(FaceSelectionModifier): def __init__(self, min_segments, operator): self.min_segments = min_segments self.operator = operator def select(self, skelctxt, selection):
# In vtk, line widths of 0 cause errors elif config.dimension() == 3: widthRange = (1, 10) skeletonBoundaryDisplay = registeredclass.Registration( 'Boundaries', display.DisplayMethod, SkeletonBoundaryDisplay, params=[ SkeletonBoundaryListParameter('boundaries', [], tip="Boundaries to display."), color.ColorParameter('color', value=color.gray50, tip="Color for the displayed boundaries."), parameter.IntRangeParameter('linewidth', widthRange, 4, tip="Line width for edge boundaries."), parameter.IntRangeParameter('dotsize', widthRange, 4, tip="Dot radius for point boundaries."), parameter.IntRangeParameter('arrowsize', (0, 20), 10, tip="Arrow size for edge boundaries.") ], ordering=1.0, layerordering=display.SemiLinear(2), whoclasses=('Skeleton', ), tip="Display some or all of the boundaries of the Skeleton", discussion=xmlmenudump.loadFile( 'DISCUSSIONS/engine/reg/skeletonbdydisplay.xml'))