Goal
Make it easier to discover the filters and to choose the correct one in the GUI and in python.
Thus the following is about the proxy labels, not names, even if we may use the term “name” for simplicity.
Constraints
Backward compatibility
The names are used in the statefiles and the labels in the python scripts, thus we need to care about backward compatibility. We are currently completing the support for python compatibility mode.
Also renaming has an impact for the current users so we may want to limit the number of changes.
Context
This is not an exhaustive work: we have targeted a subset of data-array-oriented filters.Thus a lot of meshing filters and data extraction filters were not considered.
Proposition
Suggested rules
- Labels should start with a verb.
- Changes should follow the Law of Proximity:
a. improve naming consistency
b. put similar filters into categories
c. group categories (in a tree)
Some verbs are already used in several cases, and I mainly reused them in my suggestion below:
- Generate
- Compute
In my opinion, the difference that may be suggested here depends mainly on the complexity of the computation, and therefor on how this computation is dependent on the input data.
Examples:
BlockScalars
is really easy to compute: may becomeGenerateBlockIds
Connectivity
requires topology knowledges:ComputeConnectivity
I’m not suggesting to rename every filters with one of those verbs, this is more a guideline.
Also, I’m of course open to suggestions: Does this kind of classification make any sense to you ? Do you have better wording ?
EDIT
This is in fact to mitigate. While using a verb to describe a filter action can make sense, it looks better to have only meaningful word, and drop too generic ones. See comments below.
Naming and categories
Legend
# Category
## Sub category
Filter
RenamedFilter (CurrentName)
Current categories
# AMR
# Annotation
# Chemistry
# Common
# CosmoTools
# CTH
# Data Analysis
# Hyper Tree Grid
# Material Analysis
# Moment Invariants
# Point Interpolation
# Quadrature Points
# Statistics
# Temporal
Proposition
Contained filters are listed only for new categories.
EDIT
updated version after some discussion
# Common
-> kept for toolbar
# Data Model
## AMR
( ## CTH)
## Molecules (Chemistry)
## Hyper Tree Grid
# Display
## Annotation
## Textures
SurfaceNormals (GenerateSurfaceNormals)
SurfaceTangents (GenerateSurfaceTangents)
TextureMapToCylinder
TextureMapToPlane
TextureMapToSphere
## Charts
Histogram
Histogram 2D
Plot Data
Plot Data Over Time
Plot Global Variables Over Time
Plot On Intersection Curves ~
Plot On Sorted Lines ~
Plot Over Line
# Domain
( ## CosmoTools)
## (Data Analysis)
-> kept for toolbar, but duplicated into Mesh Extraction and Charts
## Distributed
D3
DistributeDataSet ~ (RedistributeDataSet)
DistributePoints
GhostCellsGenerator
GhostElementsSuppresion ~ (RemoveGhostInformation)
ProcessIds (GenerateProcessIds)
( ## Material Analysis)
## Moment Invariants
## Point Interpolation
## Quadrature Points
## Temporal
# Mesh
## Mesh Analysis
CellSize
CellValidity (ValidateCells)
ConnectedSurfaceProperties (ComputeConnectedSurfaceProperties)
Connectivity
Coordinates (AppendLocationAttributes)
CountCellFaces
CountCellVertices
Elevation
PolyLineLength (AppendArcLength)
MeshQuality
SurfaceCurvature (Curvature)
## Mesh Extraction
Extract Cells Along line
Extract Cells Along Lines Custom Source
Extract Cells By Type
Extract Location
Extract Selection
Probe Location
# Programmable
Calculator
ProgrammableAnnotation
ProgrammableFilter
ProgrammableSource
PythonCalculator
# Data Arrays
## Arrays Generation
Elevation
PerlinNoise
RandomAttributes
RandomVectors
SpatioTemporalHarmonics (GenerateSpatioTemporalHarmonics)
## Arrays Forwarding
AppendAttributes
CellDataToPointData
FieldArraysFromFile (AddFieldArrays)
PassArrays
PointDataToCellData
RenameArrays
## Arrays Quality
ConstrainVectorsOnSurface ~ (SurfaceVectors)
DeflectsNormal
Derivatives (ComputeDerivatives)
Gradient
TensorPrincipalInvariants (ComputeTensorPrincipalInvariants)
YieldCriteria (ComputeYieldCriteria)
## Element Ids
AMRLevelIds (LevelScalarsOverlappingAMR)
BlockIds (BlockScalars)
Connectivity
GlobalIds (GenerateGlobalIds)
Ids (GenerateIds)
ProcessIds (GenerateProcessIds)
## Statistics