VTK  9.6.20260607
vtkSurfaceNetsAtlas Class Reference

query-driven extraction of regions and patches from any SurfaceNets filter output More...

#include <vtkSurfaceNetsAtlas.h>

Inheritance diagram for vtkSurfaceNetsAtlas:
[legend]
Collaboration diagram for vtkSurfaceNetsAtlas:
[legend]

Public Types

enum  ExtractionModes { EXTRACT_ALL = 0 , EXTRACT_LABEL_SET = 1 }
 
enum  OutputStyles { OUTPUT_STYLE_ALL = 0 , OUTPUT_STYLE_BOUNDARY = 1 }
 
- Public Types inherited from vtkPartitionedDataSetCollectionAlgorithm
typedef vtkAlgorithm Superclass
 
- Public Types inherited from vtkAlgorithm
enum  DesiredOutputPrecision { SINGLE_PRECISION , DOUBLE_PRECISION , DEFAULT_PRECISION }
 Values used for setting the desired output precision for various algorithms. More...
 
typedef vtkObject Superclass
 

Public Member Functions

int GetNumberOfLabels () const
 Return the number of distinct labels in the input.
 
vtkIdType GetLabelForName (const std::string &name) const
 Reverse-lookup a label value by its name.
 
vtkIdType GetNumberOfPatches () const
 Return the number of patches (unordered {L0, L1} pairs with L0 < L1) in the input.
 
void GetPatchLabels (int patchID, vtkIdType labels[2]) const
 Fill labels with the (L0, L1) pair defining the patch at patchID, with L0 < L1.
 
vtkIdType GetPatchCellCount (int patchID) const
 Return the number of cells on the patch at patchID.
 
virtual void SetExtractionMode (int)
 Specify which regions are emitted in the output:
 
virtual int GetExtractionMode ()
 Specify which regions are emitted in the output:
 
void SetExtractionModeToAll ()
 Specify which regions are emitted in the output:
 
void SetExtractionModeToLabelSet ()
 Specify which regions are emitted in the output:
 
virtual void SetOutputStyle (int)
 Specify which cells are included in each emitted Region partition.
 
virtual int GetOutputStyle ()
 Specify which cells are included in each emitted Region partition.
 
void SetOutputStyleToAll ()
 Specify which cells are included in each emitted Region partition.
 
void SetOutputStyleToBoundary ()
 Specify which cells are included in each emitted Region partition.
 
virtual void SetBackgroundLabel (vtkIdType)
 The label value that represents background voxels.
 
virtual vtkIdType GetBackgroundLabel ()
 The label value that represents background voxels.
 
void AddSelectedLabel (vtkIdType label)
 Add, remove, or replace a single label in the selection list.
 
void RemoveSelectedLabel (vtkIdType label)
 Add, remove, or replace a single label in the selection list.
 
void ClearSelectedLabels ()
 Add, remove, or replace a single label in the selection list.
 
void SetNumberOfSelectedLabels (int n)
 Set the selection list to exactly n entries.
 
int GetNumberOfSelectedLabels () const
 Set the selection list to exactly n entries.
 
void SetSelectedLabel (int i, vtkIdType label)
 Index-based access to the selection list.
 
vtkIdType GetSelectedLabel (int i) const
 Index-based access to the selection list.
 
std::vector< vtkIdTypeGetSelectedLabels () const
 Set/Get the complete selection list.
 
void SetSelectedLabels (const std::vector< vtkIdType > &labels)
 Set/Get the complete selection list.
 
void GenerateSelectedLabels (int numLabels, vtkIdType rangeStart, vtkIdType rangeEnd)
 Populate the selection list with numLabels equally spaced integer labels between rangeStart and rangeEnd (inclusive).
 
void GenerateSelectedLabels (int numLabels, vtkIdType range[2])
 Populate the selection list with numLabels equally spaced integer labels between rangeStart and rangeEnd (inclusive).
 
void GenerateSelectedLabels (vtkIdType rangeStart, vtkIdType rangeEnd)
 Populate the selection list with numLabels equally spaced integer labels between rangeStart and rangeEnd (inclusive).
 
int GetNumberOfLabelNames () const
 Human-readable names for labels.
 
void SetLabelName (vtkIdType label, const std::string &name)
 Human-readable names for labels.
 
std::string GetLabelName (vtkIdType label) const
 Human-readable names for labels.
 
void AddLabelName (vtkIdType label, const std::string &name)
 Human-readable names for labels.
 
void RemoveLabelName (vtkIdType label)
 Human-readable names for labels.
 
void ClearLabelNames ()
 Human-readable names for labels.
 
virtual void SetGenerateRegions (bool)
 When on (the default), the output PDC contains a "Regions" subtree with one PDS per selected label.
 
virtual bool GetGenerateRegions ()
 When on (the default), the output PDC contains a "Regions" subtree with one PDS per selected label.
 
virtual void GenerateRegionsOn ()
 When on (the default), the output PDC contains a "Regions" subtree with one PDS per selected label.
 
virtual void GenerateRegionsOff ()
 When on (the default), the output PDC contains a "Regions" subtree with one PDS per selected label.
 
virtual void SetGeneratePatches (bool)
 When on, the output PDC also contains a "Patches" subtree in its assembly, with one PDS per patch (L0, L1) whose at-least-one-label is in the current selection.
 
virtual bool GetGeneratePatches ()
 When on, the output PDC also contains a "Patches" subtree in its assembly, with one PDS per patch (L0, L1) whose at-least-one-label is in the current selection.
 
virtual void GeneratePatchesOn ()
 When on, the output PDC also contains a "Patches" subtree in its assembly, with one PDS per patch (L0, L1) whose at-least-one-label is in the current selection.
 
virtual void GeneratePatchesOff ()
 When on, the output PDC also contains a "Patches" subtree in its assembly, with one PDS per patch (L0, L1) whose at-least-one-label is in the current selection.
 
virtual void SetResolveNonManifoldPoints (bool)
 When on, post-processes each output partition (both Regions and Patches) to resolve non-manifold points by splitting the local cell fan by connected component.
 
virtual bool GetResolveNonManifoldPoints ()
 When on, post-processes each output partition (both Regions and Patches) to resolve non-manifold points by splitting the local cell fan by connected component.
 
virtual void ResolveNonManifoldPointsOn ()
 When on, post-processes each output partition (both Regions and Patches) to resolve non-manifold points by splitting the local cell fan by connected component.
 
virtual void ResolveNonManifoldPointsOff ()
 When on, post-processes each output partition (both Regions and Patches) to resolve non-manifold points by splitting the local cell fan by connected component.
 
bool HasLabel (vtkIdType label) const
 Return whether label exists in the atlas.
 
bool HasLabel (const std::string &name) const
 Return whether label exists in the atlas.
 
int GetLIDForLabel (vtkIdType label) const
 Translate between Label and LID.
 
int GetLIDForLabel (const std::string &name) const
 Translate between Label and LID.
 
vtkIdType GetLabelForLID (int lid) const
 Translate between Label and LID.
 
bool AreAdjacent (vtkIdType label0, vtkIdType label1) const
 Return whether two labels share a patch.
 
bool AreAdjacent (const std::string &name0, const std::string &name1) const
 Return whether two labels share a patch.
 
std::vector< vtkIdTypeGetAdjacentLabels (vtkIdType label) const
 Return a list of labels that share a patch with label.
 
std::vector< vtkIdTypeGetAdjacentLabels (const std::string &name) const
 Return a list of labels that share a patch with label.
 
int GetPatchID (vtkIdType label0, vtkIdType label1) const
 Return the patch ID for the patch defined by the (unordered) pair (label0, label1), or -1 if no such patch exists.
 
int GetPatchID (const std::string &name0, const std::string &name1) const
 Return the patch ID for the patch defined by the (unordered) pair (label0, label1), or -1 if no such patch exists.
 
std::vector< int > GetPatchesForLabel (vtkIdType label) const
 Returns the indices of every patch touching label.
 
std::vector< int > GetPatchesForLabel (const std::string &name) const
 Returns the indices of every patch touching label.
 
- Public Member Functions inherited from vtkPartitionedDataSetCollectionAlgorithm
vtkPartitionedDataSetCollectionAlgorithmNewInstance () const
 
vtkTypeBool ProcessRequest (vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo) override
 Upstream/Downstream requests form the generalized interface through which executives invoke a algorithm's functionality.
 
vtkPartitionedDataSetCollectionGetOutput ()
 Get the output data object for the specified output port.
 
vtkPartitionedDataSetCollectionGetOutput (int)
 Get the output data object for the specified output port.
 
- Public Member Functions inherited from vtkAlgorithm
vtkAlgorithmNewInstance () const
 
vtkTypeBool HasExecutive ()
 Check whether this algorithm has an assigned executive.
 
vtkExecutiveGetExecutive ()
 Get this algorithm's executive.
 
virtual void SetExecutive (vtkExecutive *executive)
 Set this algorithm's executive.
 
vtkTypeBool ProcessRequest (vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo)
 Version of ProcessRequest() that is wrapped.
 
virtual int ComputePipelineMTime (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, vtkMTimeType *mtime)
 A special version of ProcessRequest meant specifically for the pipeline modified time request.
 
virtual int ModifyRequest (vtkInformation *request, int when)
 This method gives the algorithm a chance to modify the contents of a request before or after (specified in the when argument) it is forwarded.
 
vtkInformationGetInputPortInformation (int port)
 Get the information object associated with an input port.
 
vtkInformationGetOutputPortInformation (int port)
 Get the information object associated with an output port.
 
int GetNumberOfInputPorts ()
 Get the number of input ports used by the algorithm.
 
int GetNumberOfOutputPorts ()
 Get the number of output ports provided by the algorithm.
 
void SetAbortExecuteAndUpdateTime ()
 Set AbortExecute Flag and update LastAbortTime.
 
void UpdateProgress (double amount)
 Update the progress of the process object.
 
bool CheckAbort ()
 Checks to see if this filter should abort.
 
virtual void SetInputArrayToProcess (int idx, vtkInformation *info)
 Set the input data arrays that this algorithm will process.
 
int GetNumberOfInputArraySpecifications ()
 Get the number of input array indices that have already been set.
 
bool ResetInputArraySpecifications ()
 Clear all existing input array specifications (as if SetInputArrayToProcess had never been called).
 
vtkInformationGetInputArrayInformation (int idx)
 Get the info object for the specified input array to this algorithm.
 
void RemoveAllInputs ()
 Remove all the input data.
 
vtkDataObjectGetOutputDataObject (int port)
 Get the data object that will contain the algorithm output for the given port.
 
vtkDataObjectGetInputDataObject (int port, int connection)
 Get the data object that will contain the algorithm input for the given port and given connection.
 
virtual void RemoveInputConnection (int port, vtkAlgorithmOutput *input)
 Remove a connection from the given input port index.
 
virtual void RemoveInputConnection (int port, int idx)
 Remove a connection given by index idx.
 
virtual void RemoveAllInputConnections (int port)
 Removes all input connections.
 
virtual void SetInputDataObject (int port, vtkDataObject *data)
 Sets the data-object as an input on the given port index.
 
virtual void SetInputDataObject (vtkDataObject *data)
 
virtual void AddInputDataObject (int port, vtkDataObject *data)
 Add the data-object as an input to this given port.
 
virtual void AddInputDataObject (vtkDataObject *data)
 
vtkAlgorithmOutputGetOutputPort (int index)
 Get a proxy object corresponding to the given output port of this algorithm.
 
vtkAlgorithmOutputGetOutputPort ()
 
int GetNumberOfInputConnections (int port)
 Get the number of inputs currently connected to a port.
 
int GetTotalNumberOfInputConnections ()
 Get the total number of inputs for this algorithm.
 
vtkAlgorithmOutputGetInputConnection (int port, int index)
 Get the algorithm output port connected to an input port.
 
vtkAlgorithmGetInputAlgorithm (int port, int index, int &algPort)
 Returns the algorithm and the output port index of that algorithm connected to a port-index pair.
 
vtkAlgorithmGetInputAlgorithm (int port, int index)
 Returns the algorithm connected to a port-index pair.
 
vtkAlgorithmGetInputAlgorithm ()
 Equivalent to GetInputAlgorithm(0, 0).
 
vtkExecutiveGetInputExecutive (int port, int index)
 Returns the executive associated with a particular input connection.
 
vtkExecutiveGetInputExecutive ()
 Equivalent to GetInputExecutive(0, 0)
 
vtkInformationGetInputInformation (int port, int index)
 Return the information object that is associated with a particular input connection.
 
vtkInformationGetInputInformation ()
 Equivalent to GetInputInformation(0, 0)
 
vtkInformationGetOutputInformation (int port)
 Return the information object that is associated with a particular output port.
 
virtual vtkTypeBool Update (int port, vtkInformationVector *requests)
 This method enables the passing of data requests to the algorithm to be used during execution (in addition to bringing a particular port up-to-date).
 
virtual vtkTypeBool Update (vtkInformation *requests)
 Convenience method to update an algorithm after passing requests to its first output port.
 
virtual int UpdatePiece (int piece, int numPieces, int ghostLevels, const int extents[6]=nullptr)
 Convenience method to update an algorithm after passing requests to its first output port.
 
virtual int UpdateExtent (const int extents[6])
 Convenience method to update an algorithm after passing requests to its first output port.
 
virtual int UpdateTimeStep (double time, int piece=-1, int numPieces=1, int ghostLevels=0, const int extents[6]=nullptr)
 Convenience method to update an algorithm after passing requests to its first output port.
 
virtual bool UpdateInformation ()
 Bring the algorithm's information up-to-date.
 
virtual bool UpdateDataObject ()
 Create output object(s).
 
virtual void PropagateUpdateExtent ()
 Propagate meta-data upstream.
 
virtual bool UpdateWholeExtent ()
 Bring this algorithm's outputs up-to-date.
 
void ConvertTotalInputToPortConnection (int ind, int &port, int &conn)
 Convenience routine to convert from a linear ordering of input connections to a port/connection pair.
 
void RemoveNoPriorTemporalAccessInformationKey ()
 Removes any information key vtkStreamingDemandDrivenPipeline::NO_PRIOR_TEMPORAL_ACCESS() to all output ports of this vtkAlgorithm.
 
virtual vtkInformationGetInformation ()
 Set/Get the information object associated with this algorithm.
 
virtual void SetInformation (vtkInformation *)
 Set/Get the information object associated with this algorithm.
 
bool UsesGarbageCollector () const override
 Participate in garbage collection.
 
virtual void SetAbortExecute (vtkTypeBool)
 Set/Get the AbortExecute flag for the process object.
 
virtual vtkTypeBool GetAbortExecute ()
 Set/Get the AbortExecute flag for the process object.
 
virtual void AbortExecuteOn ()
 Set/Get the AbortExecute flag for the process object.
 
virtual void AbortExecuteOff ()
 Set/Get the AbortExecute flag for the process object.
 
virtual double GetProgress ()
 Get the execution progress of a process object.
 
void SetContainerAlgorithm (vtkAlgorithm *containerAlg)
 Set/get a Container algorithm for this algorithm.
 
vtkAlgorithmGetContainerAlgorithm ()
 Set/get a Container algorithm for this algorithm.
 
virtual void SetAbortOutput (bool)
 Set/Get an internal variable used to communicate between the algorithm and executive.
 
virtual bool GetAbortOutput ()
 Set/Get an internal variable used to communicate between the algorithm and executive.
 
virtual void AbortOutputOn ()
 Set/Get an internal variable used to communicate between the algorithm and executive.
 
virtual void AbortOutputOff ()
 Set/Get an internal variable used to communicate between the algorithm and executive.
 
void SetProgressShiftScale (double shift, double scale)
 Specify the shift and scale values to use to apply to the progress amount when UpdateProgress is called.
 
virtual double GetProgressShift ()
 Specify the shift and scale values to use to apply to the progress amount when UpdateProgress is called.
 
virtual double GetProgressScale ()
 Specify the shift and scale values to use to apply to the progress amount when UpdateProgress is called.
 
void SetProgressText (const char *ptext)
 Set the current text message associated with the progress state.
 
virtual char * GetProgressText ()
 Set the current text message associated with the progress state.
 
virtual unsigned long GetErrorCode ()
 The error code contains a possible error that occurred while reading or writing the file.
 
void SetInputArrayToProcess (const char *name, int fieldAssociation, int component=vtkArrayComponents::AllComponents)
 Set the input data arrays that this algorithm will process.
 
virtual void SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, const char *name)
 Set the input data arrays that this algorithm will process.
 
virtual void SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, const char *name, int component)
 This method variant also accepts a component to consider rather than the entire tuple.
 
virtual void SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, int fieldAttributeType)
 Set the input data arrays that this algorithm will process.
 
virtual void SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, int fieldAttributeType, int component)
 This method variant also accepts a component to consider rather than the entire tuple.
 
virtual void SetInputArrayToProcess (int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName)
 Set the input data arrays that this algorithm will process.
 
virtual void SetInputArrayToProcess (int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName, const char *component)
 Set the input data arrays that this algorithm will process.
 
virtual void SetInputConnection (int port, vtkAlgorithmOutput *input)
 Set the connection for the given input port index.
 
virtual void SetInputConnection (vtkAlgorithmOutput *input)
 Set the connection for the given input port index.
 
virtual void AddInputConnection (int port, vtkAlgorithmOutput *input)
 Add a connection to the given input port index.
 
virtual void AddInputConnection (vtkAlgorithmOutput *input)
 Add a connection to the given input port index.
 
virtual bool Update (int port)
 Bring this algorithm's outputs up-to-date.
 
virtual bool Update ()
 Bring this algorithm's outputs up-to-date.
 
virtual void SetReleaseDataFlag (vtkTypeBool)
 Turn release data flag on or off for all output ports.
 
virtual vtkTypeBool GetReleaseDataFlag ()
 Turn release data flag on or off for all output ports.
 
void ReleaseDataFlagOn ()
 Turn release data flag on or off for all output ports.
 
void ReleaseDataFlagOff ()
 Turn release data flag on or off for all output ports.
 
int UpdateExtentIsEmpty (vtkInformation *pinfo, vtkDataObject *output)
 This detects when the UpdateExtent will generate no data This condition is satisfied when the UpdateExtent has zero volume (0,-1,...) or the UpdateNumberOfPieces is 0.
 
int UpdateExtentIsEmpty (vtkInformation *pinfo, int extentType)
 This detects when the UpdateExtent will generate no data This condition is satisfied when the UpdateExtent has zero volume (0,-1,...) or the UpdateNumberOfPieces is 0.
 
int * GetUpdateExtent ()
 These functions return the update extent for output ports that use 3D extents.
 
int * GetUpdateExtent (int port)
 These functions return the update extent for output ports that use 3D extents.
 
void GetUpdateExtent (int &x0, int &x1, int &y0, int &y1, int &z0, int &z1)
 These functions return the update extent for output ports that use 3D extents.
 
void GetUpdateExtent (int port, int &x0, int &x1, int &y0, int &y1, int &z0, int &z1)
 These functions return the update extent for output ports that use 3D extents.
 
void GetUpdateExtent (int extent[6])
 These functions return the update extent for output ports that use 3D extents.
 
void GetUpdateExtent (int port, int extent[6])
 These functions return the update extent for output ports that use 3D extents.
 
int GetUpdatePiece ()
 These functions return the update extent for output ports that use piece extents.
 
int GetUpdatePiece (int port)
 These functions return the update extent for output ports that use piece extents.
 
int GetUpdateNumberOfPieces ()
 These functions return the update extent for output ports that use piece extents.
 
int GetUpdateNumberOfPieces (int port)
 These functions return the update extent for output ports that use piece extents.
 
int GetUpdateGhostLevel ()
 These functions return the update extent for output ports that use piece extents.
 
int GetUpdateGhostLevel (int port)
 These functions return the update extent for output ports that use piece extents.
 
void SetProgressObserver (vtkProgressObserver *)
 If an ProgressObserver is set, the algorithm will report progress through it rather than directly.
 
virtual vtkProgressObserverGetProgressObserver ()
 If an ProgressObserver is set, the algorithm will report progress through it rather than directly.
 
void SetNoPriorTemporalAccessInformationKey (int key)
 Set to all output ports of this algorithm the information key vtkStreamingDemandDrivenPipeline::NO_PRIOR_TEMPORAL_ACCESS().
 
void SetNoPriorTemporalAccessInformationKey ()
 Set to all output ports of this algorithm the information key vtkStreamingDemandDrivenPipeline::NO_PRIOR_TEMPORAL_ACCESS().
 
- Public Member Functions inherited from vtkObject
 vtkBaseTypeMacro (vtkObject, vtkObjectBase)
 
virtual void DebugOn ()
 Turn debugging output on.
 
virtual void DebugOff ()
 Turn debugging output off.
 
bool GetDebug ()
 Get the value of the debug flag.
 
void SetDebug (bool debugFlag)
 Set the value of the debug flag.
 
virtual void Modified ()
 Update the modification time for this object.
 
virtual vtkMTimeType GetMTime ()
 Return this object's modified time.
 
void RemoveObserver (unsigned long tag)
 
void RemoveObservers (unsigned long event)
 
void RemoveObservers (const char *event)
 
void RemoveAllObservers ()
 
vtkTypeBool HasObserver (unsigned long event)
 
vtkTypeBool HasObserver (const char *event)
 
vtkTypeBool InvokeEvent (unsigned long event)
 
vtkTypeBool InvokeEvent (const char *event)
 
std::string GetObjectDescription () const override
 The object description printed in messages and PrintSelf output.
 
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
vtkCommandGetCommand (unsigned long tag)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
void RemoveObserver (vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
void RemoveObservers (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
void RemoveObservers (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
vtkTypeBool HasObserver (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
vtkTypeBool HasObserver (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
template<class U, class T>
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events.
 
template<class U, class T>
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events.
 
template<class U, class T>
unsigned long AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Allow user to set the AbortFlagOn() with the return value of the callback method.
 
vtkTypeBool InvokeEvent (unsigned long event, void *callData)
 This method invokes an event and return whether the event was aborted or not.
 
vtkTypeBool InvokeEvent (const char *event, void *callData)
 This method invokes an event and return whether the event was aborted or not.
 
virtual void SetObjectName (const std::string &objectName)
 Set/get the name of this object for reporting purposes.
 
virtual std::string GetObjectName () const
 Set/get the name of this object for reporting purposes.
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 Return the class name as a string.
 
virtual vtkIdType GetNumberOfGenerationsFromBase (const char *name)
 Given the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class).
 
virtual void Delete ()
 Delete a VTK object.
 
virtual void FastDelete ()
 Delete a reference to this object.
 
void InitializeObjectBase ()
 
void Print (ostream &os)
 Print an object to an ostream.
 
void Register (vtkObjectBase *o)
 Increase the reference count (mark as used by another object).
 
virtual void UnRegister (vtkObjectBase *o)
 Decrease the reference count (release by another object).
 
int GetReferenceCount ()
 Return the current reference count of this object.
 
void SetReferenceCount (int)
 Sets the reference count.
 
bool GetIsInMemkind () const
 A local state flag that remembers whether this object lives in the normal or extended memory space.
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses.
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses.
 

Protected Member Functions

 vtkSurfaceNetsAtlas ()
 
 ~vtkSurfaceNetsAtlas () override
 
int FillInputPortInformation (int port, vtkInformation *info) override
 Fill the input port information objects for this algorithm.
 
int RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
 Methods for subclasses to override to handle different pipeline requests.
 
- Protected Member Functions inherited from vtkPartitionedDataSetCollectionAlgorithm
 vtkPartitionedDataSetCollectionAlgorithm ()
 
 ~vtkPartitionedDataSetCollectionAlgorithm () override
 
int FillOutputPortInformation (int port, vtkInformation *info) override
 Fill the output port information objects for this algorithm.
 
virtual int RequestDataObject (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 Methods for subclasses to override to handle different pipeline requests.
 
virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 Methods for subclasses to override to handle different pipeline requests.
 
virtual int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 Methods for subclasses to override to handle different pipeline requests.
 
virtual int RequestUpdateTime (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 Methods for subclasses to override to handle different pipeline requests.
 
- Protected Member Functions inherited from vtkAlgorithm
 vtkAlgorithm ()
 
 ~vtkAlgorithm () override
 
bool CheckUpstreamAbort ()
 Checks to see if an upstream filter has been aborted.
 
virtual void SetNumberOfInputPorts (int n)
 Set the number of input ports used by the algorithm.
 
virtual void SetNumberOfOutputPorts (int n)
 Set the number of output ports provided by the algorithm.
 
int InputPortIndexInRange (int index, const char *action)
 
int OutputPortIndexInRange (int index, const char *action)
 
int GetInputArrayAssociation (int idx, vtkInformationVector **inputVector)
 Get the association of the actual data array for the input array specified by idx, this is only reasonable during the REQUEST_DATA pass.
 
int GetInputArrayComponent (int idx)
 Get the component to process of the actual data array for the input array specified by idx, this is only reasonable during the REQUEST_DATA pass.
 
vtkInformationGetInputArrayFieldInformation (int idx, vtkInformationVector **inputVector)
 This method takes in an index (as specified in SetInputArrayToProcess) and a pipeline information vector.
 
virtual vtkExecutiveCreateDefaultExecutive ()
 Create a default executive.
 
void ReportReferences (vtkGarbageCollector *) override
 
virtual void SetNthInputConnection (int port, int index, vtkAlgorithmOutput *input)
 Replace the Nth connection on the given input port.
 
virtual void SetNumberOfInputConnections (int port, int n)
 Set the number of input connections on the given input port.
 
void SetInputDataInternal (int port, vtkDataObject *input)
 These methods are used by subclasses to implement methods to set data objects directly as input.
 
void AddInputDataInternal (int port, vtkDataObject *input)
 
int GetInputArrayAssociation (int idx, int connection, vtkInformationVector **inputVector)
 Filters that have multiple connections on one port can use this signature.
 
int GetInputArrayAssociation (int idx, vtkDataObject *input)
 Filters that have multiple connections on one port can use this signature.
 
vtkDataArrayGetInputArrayToProcess (int idx, vtkInformationVector **inputVector)
 Get the actual data array for the input array specified by idx, this is only reasonable during the REQUEST_DATA pass.
 
vtkDataArrayGetInputArrayToProcess (int idx, vtkInformationVector **inputVector, int &association)
 Get the actual data array for the input array specified by idx, this is only reasonable during the REQUEST_DATA pass.
 
vtkDataArrayGetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector)
 Filters that have multiple connections on one port can use this signature.
 
vtkDataArrayGetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association)
 Filters that have multiple connections on one port can use this signature.
 
vtkDataArrayGetInputArrayToProcess (int idx, vtkDataObject *input)
 Filters that have multiple connections on one port can use this signature.
 
vtkDataArrayGetInputArrayToProcess (int idx, vtkDataObject *input, int &association)
 Filters that have multiple connections on one port can use this signature.
 
vtkAbstractArrayGetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector)
 Get the actual data array for the input array specified by idx, this is only reasonable during the REQUEST_DATA pass.
 
vtkAbstractArrayGetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector, int &association)
 Get the actual data array for the input array specified by idx, this is only reasonable during the REQUEST_DATA pass.
 
vtkAbstractArrayGetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector)
 Filters that have multiple connections on one port can use this signature.
 
vtkAbstractArrayGetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association)
 Filters that have multiple connections on one port can use this signature.
 
vtkAbstractArrayGetInputAbstractArrayToProcess (int idx, vtkDataObject *input)
 Filters that have multiple connections on one port can use this signature.
 
vtkAbstractArrayGetInputAbstractArrayToProcess (int idx, vtkDataObject *input, int &association)
 Filters that have multiple connections on one port can use this signature.
 
vtkSmartPointer< vtkAbstractArrayGetInputArray (int idx, int connection, vtkInformationVector **inputVector, int &association, int requestedComponent=vtkArrayComponents::Requested)
 Get an array from the input at index idx.
 
vtkSmartPointer< vtkAbstractArrayGetInputArray (int idx, vtkDataObject *input, int &association, int requestedComponent=vtkArrayComponents::Requested)
 Get an array from the input at index idx.
 
template<typename ArrayType, typename... Params>
vtkSmartPointer< ArrayType > GetInputArrayAs (Params &&... params)
 Get an array from the input at index idx.
 
virtual void SetErrorCode (unsigned long)
 The error code contains a possible error that occurred while reading or writing the file.
 
- Protected Member Functions inherited from vtkObject
 vtkObject ()
 
 ~vtkObject () override
 
void RegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
 These methods allow a command to exclusively grab all events.
 
void InternalReleaseFocus ()
 These methods allow a command to exclusively grab all events.
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 
typedef vtkPartitionedDataSetCollectionAlgorithm Superclass
 Standard methods to instantiate, print, and provide type information.
 
static vtkSurfaceNetsAtlasNew ()
 Standard methods to instantiate, print, and provide type information.
 
static vtkTypeBool IsTypeOf (const char *type)
 Standard methods to instantiate, print, and provide type information.
 
static vtkSurfaceNetsAtlasSafeDownCast (vtkObjectBase *o)
 Standard methods to instantiate, print, and provide type information.
 
virtual vtkTypeBool IsA (const char *type)
 Standard methods to instantiate, print, and provide type information.
 
vtkSurfaceNetsAtlasNewInstance () const
 Standard methods to instantiate, print, and provide type information.
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Standard methods to instantiate, print, and provide type information.
 
virtual vtkObjectBaseNewInstanceInternal () const
 Standard methods to instantiate, print, and provide type information.
 

Additional Inherited Members

- Static Public Member Functions inherited from vtkPartitionedDataSetCollectionAlgorithm
static vtkTypeBool IsTypeOf (const char *type)
 
static vtkPartitionedDataSetCollectionAlgorithmSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkAlgorithm
static vtkAlgorithmNew ()
 
static vtkTypeBool IsTypeOf (const char *type)
 
static vtkAlgorithmSafeDownCast (vtkObjectBase *o)
 
static vtkInformationIntegerKeyINPUT_IS_OPTIONAL ()
 Keys used to specify input port requirements.
 
static vtkInformationIntegerKeyINPUT_IS_REPEATABLE ()
 
static vtkInformationInformationVectorKeyINPUT_REQUIRED_FIELDS ()
 
static vtkInformationStringVectorKeyINPUT_REQUIRED_DATA_TYPE ()
 
static vtkInformationInformationVectorKeyINPUT_ARRAYS_TO_PROCESS ()
 
static vtkInformationIntegerKeyINPUT_PORT ()
 
static vtkInformationIntegerKeyINPUT_CONNECTION ()
 
static vtkInformationIntegerKeyCAN_PRODUCE_SUB_EXTENT ()
 This key tells the executive that a particular output port is capable of producing an arbitrary subextent of the whole extent.
 
static vtkInformationIntegerKeyCAN_HANDLE_PIECE_REQUEST ()
 Key that tells the pipeline that a particular algorithm can or cannot handle piece request.
 
static vtkInformationIntegerKeyABORTED ()
 
static void SetDefaultExecutivePrototype (vtkExecutive *proto)
 If the DefaultExecutivePrototype is set, a copy of it is created in CreateDefaultExecutive() using NewInstance().
 
- Static Public Member Functions inherited from vtkObject
static vtkObjectNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
 
static void BreakOnError ()
 This method is called when vtkErrorMacro executes.
 
static void SetGlobalWarningDisplay (vtkTypeBool val)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
static void GlobalWarningDisplayOn ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
static void GlobalWarningDisplayOff ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
static vtkTypeBool GetGlobalWarningDisplay ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
- Static Public Member Functions inherited from vtkObjectBase
static vtkTypeBool IsTypeOf (const char *name)
 Return 1 if this class type is the same type of (or a subclass of) the named class.
 
static vtkIdType GetNumberOfGenerationsFromBaseType (const char *name)
 Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class).
 
static vtkObjectBaseNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
 
static void SetMemkindDirectory (const char *directoryname)
 The name of a directory, ideally mounted -o dax, to memory map an extended memory space within.
 
static bool GetUsingMemkind ()
 A global state flag that controls whether vtkObjects are constructed in the usual way (the default) or within the extended memory space.
 
- Public Attributes inherited from vtkAlgorithm
std::atomic< vtkTypeBoolAbortExecute
 
- Static Protected Member Functions inherited from vtkAlgorithm
static vtkInformationIntegerKeyPORT_REQUIREMENTS_FILLED ()
 
- Static Protected Member Functions inherited from vtkObjectBase
static vtkMallocingFunction GetCurrentMallocFunction ()
 
static vtkReallocingFunction GetCurrentReallocFunction ()
 
static vtkFreeingFunction GetCurrentFreeFunction ()
 
static vtkFreeingFunction GetAlternateFreeFunction ()
 
- Protected Attributes inherited from vtkAlgorithm
vtkTimeStamp LastAbortCheckTime
 
vtkInformationInformation
 
double Progress
 
char * ProgressText
 
vtkProgressObserverProgressObserver
 
unsigned long ErrorCode
 The error code contains a possible error that occurred while reading or writing the file.
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
std::string ObjectName
 
- Protected Attributes inherited from vtkObjectBase
std::atomic< int32_t > ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 
- Static Protected Attributes inherited from vtkAlgorithm
static vtkTimeStamp LastAbortTime
 
static vtkExecutiveDefaultExecutivePrototype
 

Detailed Description

query-driven extraction of regions and patches from any SurfaceNets filter output

vtkSurfaceNetsAtlas consumes the polygonal output of any SurfaceNets filter — vtkSurfaceNets2D, vtkSurfaceNets3D, or vtkGeneralizedSurfaceNets3D — and exposes it as a queryable label atlas: a database of Regions (one per label) and Patches (one per ordered pair of adjacent labels) that can be efficiently re-queried without re-running the upstream surface extraction.

Terminology

  • Label: the integral annotation value used to segment a point. The input volume passed to the upstream SurfaceNets filter contains N distinct labels.
  • LID (Label Identifier): an internal compact index assigned to each distinct label. The LID space is dense ([0, N)) and is used for indexing internal data structures. Label and LID are generally different; the public API speaks in Labels.
  • Label Set: an unordered collection of Labels used to specify which regions to extract.
  • Region: the object implicitly defined by a single Label. A Region is the union of all Patches that touch its Label.
  • Patch: the shared mesh boundary / interface between two adjacent regions. A Patch is identified by the ordered pair (L0, L1) with L0 < L1 (sorted by numeric label value) for stable identification and naming.
  • Adjacent: two Labels are adjacent if their Regions share a Patch.
  • BoundaryLabels: the 2-component cell-data array written by the upstream SurfaceNets filter on its output vtkPolyData. Each cell carries an ordered pair (Label0, Label1) describing the labels on either side of the cell. The ordering follows the upstream filter's convention:

    • If one side is the background, the tuple is (non-background, BackgroundLabel) (background is always the second component).
    • Otherwise, the tuple is sorted so that Label0 < Label1.

    The mesh is wound such that the cell normal points from Label0 to Label1.

Output

The filter produces a vtkPartitionedDataSetCollection (PDC). Each requested Region or Patch is emitted as a vtkPartitionedDataSet (PDS) containing a single vtkPolyData partition (in the serial case; distributed builds may produce multiple partitions per PDS). A vtkDataAssembly organizes the output into two top-level subtrees:

<root>
<Regions> (only if GenerateRegions is on)
<Name|Label_N> -> PDS containing the region polydata
...
<Patches> (only if GeneratePatches is on)
<Name0_Name1|Label_N_Label_M> -> PDS containing the patch polydata
...

Node names default to Label_N / Label_N_Label_M but are replaced by the name set via SetLabelName() when one is present. Assembly node attributes — Region: Name, Label, LID. Patch: Name0, Name1, Label0, Label1, LID0, LID1.

Each partition's vtkPolyData also carries arrays so downstream consumers can identify it without the assembly. The scalar type of "BoundaryLabels" matches the scalar type of the upstream filter's "BoundaryLabels" input array.

Region cell data:

  • "BoundaryLabels" (2-component) — [Label0, Label1] for each cell. Label0 is always the region's own label, so the cell normal points outward (from the region into its neighbour). Active scalar array. Varies per cell.
  • "Label" (vtkIdType, constant) — the region's label value, same for every cell. Backed by vtkConstantArray (O(1) storage).
  • "LID" (int, constant) — the region's dense index, same for every cell. Backed by vtkConstantArray (O(1) storage).

Region field data (partition-level metadata):

  • "AdjacentLabels" (vtkIdType[]) — label values of all neighbouring regions.
  • "PatchIDs" (int[]) — atlas patch IDs of all patches touching this region.

Patch cell data:

  • "BoundaryLabels" (2-component) — [Label0, Label1], with Label0 < Label1 by label value (background label is always Label1 when present). Active scalar array. Varies per cell.
  • "PatchID" (int, constant) — the atlas ID of this patch, same for every cell. Backed by vtkConstantArray (O(1) storage).

Patch field data: none.

PDC field data (always present):

  • "LIDToLabel" (vtkIdType[]) — the full Label↔LID mapping for the current atlas.
  • "PatchLIDs" (2-component int) — maps each patch ID to its [LID0, LID1] pair.
  • "PatchLabels" (2-component vtkIdType) — maps each patch ID to its [Label0, Label1] pair (with Label0 < Label1).

Model

The atlas (the internal database of label mappings, the patch table, and per-cell patch indices) is built once per input change, gated on the input vtkPolyData's MTime. Changing extraction parameters (SelectedLabels, ExtractionMode, OutputStyle, GeneratePatches, ResolveNonManifoldPoints, BackgroundLabel) does not trigger a rebuild of the atlas; it only rebuilds the output PDC by walking the cached patch table. This makes iterative queries (e.g., interactive toggling of labels in a viewer) cheap.

Output partitions are deep-copied: the output PDC has no lifetime dependency on the input mesh.

Inputs

The filter accepts the vtkPolyData output of any SurfaceNets filter:

Upstream filter Cell type
vtkSurfaceNets2D Lines
vtkSurfaceNets3D Quads
vtkSurfaceNets3D Triangles
vtkGeneralizedSurfaceNets3D Polygons
vtkGeneralizedSurfaceNets3D Triangles

The point-data array "NonManifoldTableIndices" (signed int8), produced only by vtkSurfaceNets3D, is used as a hint by ResolveNonManifoldPoints to identify candidate points; when absent, all points are scanned. The array is never present in output partitions.

See also
vtkSurfaceNets2D vtkSurfaceNets3D vtkGeneralizedSurfaceNets3D vtkPartitionedDataSetCollection vtkDataAssembly
Tests:
vtkSurfaceNetsAtlas (Tests)

Definition at line 152 of file vtkSurfaceNetsAtlas.h.

Member Typedef Documentation

◆ Superclass

Standard methods to instantiate, print, and provide type information.

Definition at line 161 of file vtkSurfaceNetsAtlas.h.

Member Enumeration Documentation

◆ ExtractionModes

Enumerator
EXTRACT_ALL 
EXTRACT_LABEL_SET 

Definition at line 169 of file vtkSurfaceNetsAtlas.h.

◆ OutputStyles

Enumerator
OUTPUT_STYLE_ALL 
OUTPUT_STYLE_BOUNDARY 

Definition at line 196 of file vtkSurfaceNetsAtlas.h.

Constructor & Destructor Documentation

◆ vtkSurfaceNetsAtlas()

vtkSurfaceNetsAtlas::vtkSurfaceNetsAtlas ( )
protected

◆ ~vtkSurfaceNetsAtlas()

vtkSurfaceNetsAtlas::~vtkSurfaceNetsAtlas ( )
overrideprotected

Member Function Documentation

◆ New()

static vtkSurfaceNetsAtlas * vtkSurfaceNetsAtlas::New ( )
static

Standard methods to instantiate, print, and provide type information.

◆ IsTypeOf()

static vtkTypeBool vtkSurfaceNetsAtlas::IsTypeOf ( const char * type)
static

Standard methods to instantiate, print, and provide type information.

◆ IsA()

virtual vtkTypeBool vtkSurfaceNetsAtlas::IsA ( const char * type)
virtual

Standard methods to instantiate, print, and provide type information.

Reimplemented from vtkPartitionedDataSetCollectionAlgorithm.

◆ SafeDownCast()

static vtkSurfaceNetsAtlas * vtkSurfaceNetsAtlas::SafeDownCast ( vtkObjectBase * o)
static

Standard methods to instantiate, print, and provide type information.

◆ NewInstanceInternal()

virtual vtkObjectBase * vtkSurfaceNetsAtlas::NewInstanceInternal ( ) const
protectedvirtual

Standard methods to instantiate, print, and provide type information.

Reimplemented from vtkPartitionedDataSetCollectionAlgorithm.

◆ NewInstance()

vtkSurfaceNetsAtlas * vtkSurfaceNetsAtlas::NewInstance ( ) const

Standard methods to instantiate, print, and provide type information.

◆ PrintSelf()

void vtkSurfaceNetsAtlas::PrintSelf ( ostream & os,
vtkIndent indent )
overridevirtual

Standard methods to instantiate, print, and provide type information.

Reimplemented from vtkPartitionedDataSetCollectionAlgorithm.

◆ SetExtractionMode()

virtual void vtkSurfaceNetsAtlas::SetExtractionMode ( int )
virtual

Specify which regions are emitted in the output:

  • All: every distinct label found in the input.
  • LabelSet: the labels currently in the SelectedLabels list.

In LabelSet mode, an empty selection produces an empty output (it is not interpreted as "all labels"). Use All for that.

Default: EXTRACT_ALL.

◆ GetExtractionMode()

virtual int vtkSurfaceNetsAtlas::GetExtractionMode ( )
virtual

Specify which regions are emitted in the output:

  • All: every distinct label found in the input.
  • LabelSet: the labels currently in the SelectedLabels list.

In LabelSet mode, an empty selection produces an empty output (it is not interpreted as "all labels"). Use All for that.

Default: EXTRACT_ALL.

◆ SetExtractionModeToAll()

void vtkSurfaceNetsAtlas::SetExtractionModeToAll ( )
inline

Specify which regions are emitted in the output:

  • All: every distinct label found in the input.
  • LabelSet: the labels currently in the SelectedLabels list.

In LabelSet mode, an empty selection produces an empty output (it is not interpreted as "all labels"). Use All for that.

Default: EXTRACT_ALL.

Definition at line 188 of file vtkSurfaceNetsAtlas.h.

◆ SetExtractionModeToLabelSet()

void vtkSurfaceNetsAtlas::SetExtractionModeToLabelSet ( )
inline

Specify which regions are emitted in the output:

  • All: every distinct label found in the input.
  • LabelSet: the labels currently in the SelectedLabels list.

In LabelSet mode, an empty selection produces an empty output (it is not interpreted as "all labels"). Use All for that.

Default: EXTRACT_ALL.

Definition at line 189 of file vtkSurfaceNetsAtlas.h.

◆ SetOutputStyle()

virtual void vtkSurfaceNetsAtlas::SetOutputStyle ( int )
virtual

Specify which cells are included in each emitted Region partition.

  • All: every cell of the region surface, regardless of whether it borders background or another label. Cells on interior interfaces appear in both adjacent Region partitions (with opposite winding), so the total cell count across all partitions exceeds the upstream SurfaceNets output.
  • Boundary (default): only cells whose interface touches the BackgroundLabel (the outer shell of each labeled region). When GeneratePatches is also on (the default), the complementary interior label-to-label cells are emitted as Patches, so that Regions and Patches together form an exact partition of the upstream SurfaceNets output — same total cell count, no duplication, no omission. When GeneratePatches is off, interior cells are simply omitted.

Default: OUTPUT_STYLE_BOUNDARY.

◆ GetOutputStyle()

virtual int vtkSurfaceNetsAtlas::GetOutputStyle ( )
virtual

Specify which cells are included in each emitted Region partition.

  • All: every cell of the region surface, regardless of whether it borders background or another label. Cells on interior interfaces appear in both adjacent Region partitions (with opposite winding), so the total cell count across all partitions exceeds the upstream SurfaceNets output.
  • Boundary (default): only cells whose interface touches the BackgroundLabel (the outer shell of each labeled region). When GeneratePatches is also on (the default), the complementary interior label-to-label cells are emitted as Patches, so that Regions and Patches together form an exact partition of the upstream SurfaceNets output — same total cell count, no duplication, no omission. When GeneratePatches is off, interior cells are simply omitted.

Default: OUTPUT_STYLE_BOUNDARY.

◆ SetOutputStyleToAll()

void vtkSurfaceNetsAtlas::SetOutputStyleToAll ( )
inline

Specify which cells are included in each emitted Region partition.

  • All: every cell of the region surface, regardless of whether it borders background or another label. Cells on interior interfaces appear in both adjacent Region partitions (with opposite winding), so the total cell count across all partitions exceeds the upstream SurfaceNets output.
  • Boundary (default): only cells whose interface touches the BackgroundLabel (the outer shell of each labeled region). When GeneratePatches is also on (the default), the complementary interior label-to-label cells are emitted as Patches, so that Regions and Patches together form an exact partition of the upstream SurfaceNets output — same total cell count, no duplication, no omission. When GeneratePatches is off, interior cells are simply omitted.

Default: OUTPUT_STYLE_BOUNDARY.

Definition at line 222 of file vtkSurfaceNetsAtlas.h.

◆ SetOutputStyleToBoundary()

void vtkSurfaceNetsAtlas::SetOutputStyleToBoundary ( )
inline

Specify which cells are included in each emitted Region partition.

  • All: every cell of the region surface, regardless of whether it borders background or another label. Cells on interior interfaces appear in both adjacent Region partitions (with opposite winding), so the total cell count across all partitions exceeds the upstream SurfaceNets output.
  • Boundary (default): only cells whose interface touches the BackgroundLabel (the outer shell of each labeled region). When GeneratePatches is also on (the default), the complementary interior label-to-label cells are emitted as Patches, so that Regions and Patches together form an exact partition of the upstream SurfaceNets output — same total cell count, no duplication, no omission. When GeneratePatches is off, interior cells are simply omitted.

Default: OUTPUT_STYLE_BOUNDARY.

Definition at line 223 of file vtkSurfaceNetsAtlas.h.

◆ SetBackgroundLabel()

virtual void vtkSurfaceNetsAtlas::SetBackgroundLabel ( vtkIdType )
virtual

The label value that represents background voxels.

Used by OUTPUT_STYLE_BOUNDARY to identify the outer shell of each region (cells touching background) and, when GeneratePatches is on, to identify the interior label-to-label interfaces emitted as patches.

Note
Should match the BackgroundLabel set on the upstream vtkSurfaceNets3D.

Default: 0.

◆ GetBackgroundLabel()

virtual vtkIdType vtkSurfaceNetsAtlas::GetBackgroundLabel ( )
virtual

The label value that represents background voxels.

Used by OUTPUT_STYLE_BOUNDARY to identify the outer shell of each region (cells touching background) and, when GeneratePatches is on, to identify the interior label-to-label interfaces emitted as patches.

Note
Should match the BackgroundLabel set on the upstream vtkSurfaceNets3D.

Default: 0.

◆ AddSelectedLabel()

void vtkSurfaceNetsAtlas::AddSelectedLabel ( vtkIdType label)

Add, remove, or replace a single label in the selection list.

AddSelectedLabel is idempotent, i.e. adding a label already in the list is a no-op.

◆ RemoveSelectedLabel()

void vtkSurfaceNetsAtlas::RemoveSelectedLabel ( vtkIdType label)

Add, remove, or replace a single label in the selection list.

AddSelectedLabel is idempotent, i.e. adding a label already in the list is a no-op.

◆ ClearSelectedLabels()

void vtkSurfaceNetsAtlas::ClearSelectedLabels ( )

Add, remove, or replace a single label in the selection list.

AddSelectedLabel is idempotent, i.e. adding a label already in the list is a no-op.

◆ SetNumberOfSelectedLabels()

void vtkSurfaceNetsAtlas::SetNumberOfSelectedLabels ( int n)

Set the selection list to exactly n entries.

Excess entries are discarded when shrinking. SetSelectedLabel(i, label) grows the list automatically when i is past the current end.

◆ GetNumberOfSelectedLabels()

int vtkSurfaceNetsAtlas::GetNumberOfSelectedLabels ( ) const

Set the selection list to exactly n entries.

Excess entries are discarded when shrinking. SetSelectedLabel(i, label) grows the list automatically when i is past the current end.

◆ SetSelectedLabel()

void vtkSurfaceNetsAtlas::SetSelectedLabel ( int i,
vtkIdType label )

Index-based access to the selection list.

The index i ranges over [0, GetNumberOfSelectedLabels()).

SetSelectedLabel grow the list automatically when i is past the current end.

◆ GetSelectedLabel()

vtkIdType vtkSurfaceNetsAtlas::GetSelectedLabel ( int i) const

Index-based access to the selection list.

The index i ranges over [0, GetNumberOfSelectedLabels()).

SetSelectedLabel grow the list automatically when i is past the current end.

◆ GetSelectedLabels()

std::vector< vtkIdType > vtkSurfaceNetsAtlas::GetSelectedLabels ( ) const

Set/Get the complete selection list.

◆ SetSelectedLabels()

void vtkSurfaceNetsAtlas::SetSelectedLabels ( const std::vector< vtkIdType > & labels)

Set/Get the complete selection list.

◆ GenerateSelectedLabels() [1/3]

void vtkSurfaceNetsAtlas::GenerateSelectedLabels ( int numLabels,
vtkIdType rangeStart,
vtkIdType rangeEnd )

Populate the selection list with numLabels equally spaced integer labels between rangeStart and rangeEnd (inclusive).

Replaces any existing selection.

The 2-argument overload selects every consecutive integer in [rangeStart, rangeEnd], which covers the common case of sequential segmentation labels. For non-uniform label sets use AddSelectedLabel / SetSelectedLabel directly.

◆ GenerateSelectedLabels() [2/3]

void vtkSurfaceNetsAtlas::GenerateSelectedLabels ( int numLabels,
vtkIdType range[2] )

Populate the selection list with numLabels equally spaced integer labels between rangeStart and rangeEnd (inclusive).

Replaces any existing selection.

The 2-argument overload selects every consecutive integer in [rangeStart, rangeEnd], which covers the common case of sequential segmentation labels. For non-uniform label sets use AddSelectedLabel / SetSelectedLabel directly.

◆ GenerateSelectedLabels() [3/3]

void vtkSurfaceNetsAtlas::GenerateSelectedLabels ( vtkIdType rangeStart,
vtkIdType rangeEnd )

Populate the selection list with numLabels equally spaced integer labels between rangeStart and rangeEnd (inclusive).

Replaces any existing selection.

The 2-argument overload selects every consecutive integer in [rangeStart, rangeEnd], which covers the common case of sequential segmentation labels. For non-uniform label sets use AddSelectedLabel / SetSelectedLabel directly.

◆ GetNumberOfLabelNames()

int vtkSurfaceNetsAtlas::GetNumberOfLabelNames ( ) const

Human-readable names for labels.

Names are independent of the SelectedLabels list and can be assigned to any label value, including when ExtractionMode is EXTRACT_ALL. When a name is set it is used as the assembly node name instead of the default "Label_N" / "Label_N_Label_M", and exposed as a "Name" / "Name0" / "Name1" attribute on the assembly node.

Names are not validated for XML identifier legality; the caller is responsible for avoiding characters that are invalid in XML node names (spaces, colons, leading digits, etc.).

◆ SetLabelName()

void vtkSurfaceNetsAtlas::SetLabelName ( vtkIdType label,
const std::string & name )

Human-readable names for labels.

Names are independent of the SelectedLabels list and can be assigned to any label value, including when ExtractionMode is EXTRACT_ALL. When a name is set it is used as the assembly node name instead of the default "Label_N" / "Label_N_Label_M", and exposed as a "Name" / "Name0" / "Name1" attribute on the assembly node.

Names are not validated for XML identifier legality; the caller is responsible for avoiding characters that are invalid in XML node names (spaces, colons, leading digits, etc.).

◆ GetLabelName()

std::string vtkSurfaceNetsAtlas::GetLabelName ( vtkIdType label) const

Human-readable names for labels.

Names are independent of the SelectedLabels list and can be assigned to any label value, including when ExtractionMode is EXTRACT_ALL. When a name is set it is used as the assembly node name instead of the default "Label_N" / "Label_N_Label_M", and exposed as a "Name" / "Name0" / "Name1" attribute on the assembly node.

Names are not validated for XML identifier legality; the caller is responsible for avoiding characters that are invalid in XML node names (spaces, colons, leading digits, etc.).

◆ AddLabelName()

void vtkSurfaceNetsAtlas::AddLabelName ( vtkIdType label,
const std::string & name )

Human-readable names for labels.

Names are independent of the SelectedLabels list and can be assigned to any label value, including when ExtractionMode is EXTRACT_ALL. When a name is set it is used as the assembly node name instead of the default "Label_N" / "Label_N_Label_M", and exposed as a "Name" / "Name0" / "Name1" attribute on the assembly node.

Names are not validated for XML identifier legality; the caller is responsible for avoiding characters that are invalid in XML node names (spaces, colons, leading digits, etc.).

◆ RemoveLabelName()

void vtkSurfaceNetsAtlas::RemoveLabelName ( vtkIdType label)

Human-readable names for labels.

Names are independent of the SelectedLabels list and can be assigned to any label value, including when ExtractionMode is EXTRACT_ALL. When a name is set it is used as the assembly node name instead of the default "Label_N" / "Label_N_Label_M", and exposed as a "Name" / "Name0" / "Name1" attribute on the assembly node.

Names are not validated for XML identifier legality; the caller is responsible for avoiding characters that are invalid in XML node names (spaces, colons, leading digits, etc.).

◆ ClearLabelNames()

void vtkSurfaceNetsAtlas::ClearLabelNames ( )

Human-readable names for labels.

Names are independent of the SelectedLabels list and can be assigned to any label value, including when ExtractionMode is EXTRACT_ALL. When a name is set it is used as the assembly node name instead of the default "Label_N" / "Label_N_Label_M", and exposed as a "Name" / "Name0" / "Name1" attribute on the assembly node.

Names are not validated for XML identifier legality; the caller is responsible for avoiding characters that are invalid in XML node names (spaces, colons, leading digits, etc.).

◆ SetGenerateRegions()

virtual void vtkSurfaceNetsAtlas::SetGenerateRegions ( bool )
virtual

When on (the default), the output PDC contains a "Regions" subtree with one PDS per selected label.

Turn off to produce only the "Patches" subtree (requires GeneratePatches to also be on).

Default: on.

◆ GetGenerateRegions()

virtual bool vtkSurfaceNetsAtlas::GetGenerateRegions ( )
virtual

When on (the default), the output PDC contains a "Regions" subtree with one PDS per selected label.

Turn off to produce only the "Patches" subtree (requires GeneratePatches to also be on).

Default: on.

◆ GenerateRegionsOn()

virtual void vtkSurfaceNetsAtlas::GenerateRegionsOn ( )
virtual

When on (the default), the output PDC contains a "Regions" subtree with one PDS per selected label.

Turn off to produce only the "Patches" subtree (requires GeneratePatches to also be on).

Default: on.

◆ GenerateRegionsOff()

virtual void vtkSurfaceNetsAtlas::GenerateRegionsOff ( )
virtual

When on (the default), the output PDC contains a "Regions" subtree with one PDS per selected label.

Turn off to produce only the "Patches" subtree (requires GeneratePatches to also be on).

Default: on.

◆ SetGeneratePatches()

virtual void vtkSurfaceNetsAtlas::SetGeneratePatches ( bool )
virtual

When on, the output PDC also contains a "Patches" subtree in its assembly, with one PDS per patch (L0, L1) whose at-least-one-label is in the current selection.

In OUTPUT_STYLE_BOUNDARY mode (the default), only interior label-to-label patches (those not involving the BackgroundLabel) are emitted. Together with the boundary-only Region partitions, this produces an exact partition of the upstream SurfaceNets output with no cell duplication. In OUTPUT_STYLE_ALL mode, all patches (including those touching the BackgroundLabel) are emitted.

Default: on.

◆ GetGeneratePatches()

virtual bool vtkSurfaceNetsAtlas::GetGeneratePatches ( )
virtual

When on, the output PDC also contains a "Patches" subtree in its assembly, with one PDS per patch (L0, L1) whose at-least-one-label is in the current selection.

In OUTPUT_STYLE_BOUNDARY mode (the default), only interior label-to-label patches (those not involving the BackgroundLabel) are emitted. Together with the boundary-only Region partitions, this produces an exact partition of the upstream SurfaceNets output with no cell duplication. In OUTPUT_STYLE_ALL mode, all patches (including those touching the BackgroundLabel) are emitted.

Default: on.

◆ GeneratePatchesOn()

virtual void vtkSurfaceNetsAtlas::GeneratePatchesOn ( )
virtual

When on, the output PDC also contains a "Patches" subtree in its assembly, with one PDS per patch (L0, L1) whose at-least-one-label is in the current selection.

In OUTPUT_STYLE_BOUNDARY mode (the default), only interior label-to-label patches (those not involving the BackgroundLabel) are emitted. Together with the boundary-only Region partitions, this produces an exact partition of the upstream SurfaceNets output with no cell duplication. In OUTPUT_STYLE_ALL mode, all patches (including those touching the BackgroundLabel) are emitted.

Default: on.

◆ GeneratePatchesOff()

virtual void vtkSurfaceNetsAtlas::GeneratePatchesOff ( )
virtual

When on, the output PDC also contains a "Patches" subtree in its assembly, with one PDS per patch (L0, L1) whose at-least-one-label is in the current selection.

In OUTPUT_STYLE_BOUNDARY mode (the default), only interior label-to-label patches (those not involving the BackgroundLabel) are emitted. Together with the boundary-only Region partitions, this produces an exact partition of the upstream SurfaceNets output with no cell duplication. In OUTPUT_STYLE_ALL mode, all patches (including those touching the BackgroundLabel) are emitted.

Default: on.

◆ SetResolveNonManifoldPoints()

virtual void vtkSurfaceNetsAtlas::SetResolveNonManifoldPoints ( bool )
virtual

When on, post-processes each output partition (both Regions and Patches) to resolve non-manifold points by splitting the local cell fan by connected component.

Because each partition contains only a subset of the original cells, configurations that were globally unresolvable in the source mesh may be locally resolvable here.

If the input carries a NonManifoldTableIndices point-data array (produced by vtkSurfaceNets3D), only points marked -1 in that array are candidates; otherwise every point is a candidate.

In neither case does a NonManifoldTableIndices array appear in the output partitions.

Default: off.

◆ GetResolveNonManifoldPoints()

virtual bool vtkSurfaceNetsAtlas::GetResolveNonManifoldPoints ( )
virtual

When on, post-processes each output partition (both Regions and Patches) to resolve non-manifold points by splitting the local cell fan by connected component.

Because each partition contains only a subset of the original cells, configurations that were globally unresolvable in the source mesh may be locally resolvable here.

If the input carries a NonManifoldTableIndices point-data array (produced by vtkSurfaceNets3D), only points marked -1 in that array are candidates; otherwise every point is a candidate.

In neither case does a NonManifoldTableIndices array appear in the output partitions.

Default: off.

◆ ResolveNonManifoldPointsOn()

virtual void vtkSurfaceNetsAtlas::ResolveNonManifoldPointsOn ( )
virtual

When on, post-processes each output partition (both Regions and Patches) to resolve non-manifold points by splitting the local cell fan by connected component.

Because each partition contains only a subset of the original cells, configurations that were globally unresolvable in the source mesh may be locally resolvable here.

If the input carries a NonManifoldTableIndices point-data array (produced by vtkSurfaceNets3D), only points marked -1 in that array are candidates; otherwise every point is a candidate.

In neither case does a NonManifoldTableIndices array appear in the output partitions.

Default: off.

◆ ResolveNonManifoldPointsOff()

virtual void vtkSurfaceNetsAtlas::ResolveNonManifoldPointsOff ( )
virtual

When on, post-processes each output partition (both Regions and Patches) to resolve non-manifold points by splitting the local cell fan by connected component.

Because each partition contains only a subset of the original cells, configurations that were globally unresolvable in the source mesh may be locally resolvable here.

If the input carries a NonManifoldTableIndices point-data array (produced by vtkSurfaceNets3D), only points marked -1 in that array are candidates; otherwise every point is a candidate.

In neither case does a NonManifoldTableIndices array appear in the output partitions.

Default: off.

◆ GetNumberOfLabels()

int vtkSurfaceNetsAtlas::GetNumberOfLabels ( ) const

Return the number of distinct labels in the input.

◆ HasLabel() [1/2]

bool vtkSurfaceNetsAtlas::HasLabel ( vtkIdType label) const

Return whether label exists in the atlas.

◆ HasLabel() [2/2]

bool vtkSurfaceNetsAtlas::HasLabel ( const std::string & name) const

Return whether label exists in the atlas.

◆ GetLabelForName()

vtkIdType vtkSurfaceNetsAtlas::GetLabelForName ( const std::string & name) const

Reverse-lookup a label value by its name.

Returns -1 if the name is not found in the atlas.

◆ GetLIDForLabel() [1/2]

int vtkSurfaceNetsAtlas::GetLIDForLabel ( vtkIdType label) const

Translate between Label and LID.

LIDs are the dense [0, N) indices used internally and as PDS indices in the output. Returns -1 if the label or LID is not found / out of range.

◆ GetLIDForLabel() [2/2]

int vtkSurfaceNetsAtlas::GetLIDForLabel ( const std::string & name) const

Translate between Label and LID.

LIDs are the dense [0, N) indices used internally and as PDS indices in the output. Returns -1 if the label or LID is not found / out of range.

◆ GetLabelForLID()

vtkIdType vtkSurfaceNetsAtlas::GetLabelForLID ( int lid) const

Translate between Label and LID.

LIDs are the dense [0, N) indices used internally and as PDS indices in the output. Returns -1 if the label or LID is not found / out of range.

◆ AreAdjacent() [1/2]

bool vtkSurfaceNetsAtlas::AreAdjacent ( vtkIdType label0,
vtkIdType label1 ) const

Return whether two labels share a patch.

False if either label is not in the atlas.

◆ AreAdjacent() [2/2]

bool vtkSurfaceNetsAtlas::AreAdjacent ( const std::string & name0,
const std::string & name1 ) const

Return whether two labels share a patch.

False if either label is not in the atlas.

◆ GetAdjacentLabels() [1/2]

std::vector< vtkIdType > vtkSurfaceNetsAtlas::GetAdjacentLabels ( vtkIdType label) const

Return a list of labels that share a patch with label.

Output is empty if label does not exist in the atlas.

◆ GetAdjacentLabels() [2/2]

std::vector< vtkIdType > vtkSurfaceNetsAtlas::GetAdjacentLabels ( const std::string & name) const

Return a list of labels that share a patch with label.

Output is empty if label does not exist in the atlas.

◆ GetNumberOfPatches()

vtkIdType vtkSurfaceNetsAtlas::GetNumberOfPatches ( ) const

Return the number of patches (unordered {L0, L1} pairs with L0 < L1) in the input.

◆ GetPatchLabels()

void vtkSurfaceNetsAtlas::GetPatchLabels ( int patchID,
vtkIdType labels[2] ) const

Fill labels with the (L0, L1) pair defining the patch at patchID, with L0 < L1.

patchID ranges over [0, GetNumberOfPatches()). Sets both entries to -1 if out of range.

◆ GetPatchID() [1/2]

int vtkSurfaceNetsAtlas::GetPatchID ( vtkIdType label0,
vtkIdType label1 ) const

Return the patch ID for the patch defined by the (unordered) pair (label0, label1), or -1 if no such patch exists.

The argument order is irrelevant: GetPatchID(a, b) == GetPatchID(b, a).

◆ GetPatchID() [2/2]

int vtkSurfaceNetsAtlas::GetPatchID ( const std::string & name0,
const std::string & name1 ) const

Return the patch ID for the patch defined by the (unordered) pair (label0, label1), or -1 if no such patch exists.

The argument order is irrelevant: GetPatchID(a, b) == GetPatchID(b, a).

◆ GetPatchCellCount()

vtkIdType vtkSurfaceNetsAtlas::GetPatchCellCount ( int patchID) const

Return the number of cells on the patch at patchID.

Useful for diagnostics (identifying degenerate or trivially small patches) without materializing the patch polydata. Returns 0 if patchID is out of range.

◆ GetPatchesForLabel() [1/2]

std::vector< int > vtkSurfaceNetsAtlas::GetPatchesForLabel ( vtkIdType label) const

Returns the indices of every patch touching label.

The Output is empty if label does not exist in the atlas.

◆ GetPatchesForLabel() [2/2]

std::vector< int > vtkSurfaceNetsAtlas::GetPatchesForLabel ( const std::string & name) const

Returns the indices of every patch touching label.

The Output is empty if label does not exist in the atlas.

◆ FillInputPortInformation()

int vtkSurfaceNetsAtlas::FillInputPortInformation ( int port,
vtkInformation * info )
overrideprotectedvirtual

Fill the input port information objects for this algorithm.

This is invoked by the first call to GetInputPortInformation for each port so subclasses can specify what they can handle.

Reimplemented from vtkPartitionedDataSetCollectionAlgorithm.

◆ RequestData()

int vtkSurfaceNetsAtlas::RequestData ( vtkInformation * ,
vtkInformationVector ** ,
vtkInformationVector *  )
overrideprotectedvirtual

Methods for subclasses to override to handle different pipeline requests.

Reimplemented from vtkPartitionedDataSetCollectionAlgorithm.


The documentation for this class was generated from the following file: