Operator Class
Abstract base class for all operators.
NuGet/Assembly: Carmenta.Engine.5.16.2.nupkg (in the CECore assembly)
Syntax
public abstract class Operator : EngineObject,
IUserProperties
Remarks
As described in the Introduction Guide, Carmenta Engine uses a data flow model in which Feature instances flow through a sequence of manipulation or processing steps before being displayed on a Drawable connected to a View. The manipulation or processing steps are implemented by operators connected to each other in chains, each chain defining a Layer.
An operator is free to do whatever it likes with the features during processing. It could change the points, raster values or attributes of the features it gets from its predecessors, or completely replace one or more features with new features. It could for example read raster features and generate line features like IsolineOperator does, or it could filter out some features based on the attributes like FilterOperator does.
If you don't find an operator that solves your problem among the operators in Carmenta Engine, you can write your own custom operator by writing a .NET or native C++ class that implements the ICustomOperator interface.
An operator may have none, one, or many inputs. It normally only has one output, the only exception being SplitOperator which has several outputs. An operator that takes no inputs must generate features to the data flow. ReadOperator and GridGenerator are examples of operators that does not take any input and starts the data flow. Most operators have one input, but some, like FunnelOperator, may have more than one.
The figure below shows a simple chain of operators that is used to generate a layer of contour lines.
![]() |
The Operator class is not a subclass of ResourceObject, and operator instances can not be shared between different layers. During an update cycle, most operators keep an internal state, and they must not be accessed from more than one layer. The only exception is SplitOperator which is specifically designed to support this.
Inheritance Hierarchy
System.Object (not available in C#)
EngineObject
Operator
AirRouteOperator
CameraProjectOperator
ElevationOperator
FunnelOperator
Generator
GeoTextureMapOperator
LayerRasterizeOperator
LevelOfDetailOperator
PolygonClipOperator
RangeOperator
ReadOperator
ShadowOperator
TerrainMobilityOperator
UnaryOperator
VerticalClearanceOperator
VerticalProfileOperator
VisibilityOperator
Platforms
Windows, Linux, Android
Operator Members
The Operator type has the following members.
Properties
Name | Description |
---|---|
Description | Gets or sets a short description of the operator. |
DisplayName | Gets or sets a display name for the operator. |
IsDisposed | Gets a value that tells whether the current Operator has been disposed. Inherited from EngineObject |
IsoMetadataDocument | Gets or sets the path to an ISO 19139 metadata document for the operator. |
Name | Gets or sets the name of the operator. |
NativeHandle | Gets the native Carmenta Engine kernel object the current Operator represents. Inherited from EngineObject |
IUserProperties.UserProperties | Gets the AttributeSet that contains the user properties. Inherited from IUserProperties |
Methods
Name | Description |
---|---|
Clone | Creates a copy of an object. Inherited from EngineObject |
Dispose | Releases the reference to the native Carmenta Engine kernel instance the EngineObject represents. Inherited from EngineObject |
Equals | Determines whether this instance is equal to another. Inherited from EngineObject |
FindChildObject | Overloaded. Finds the child object with the specified name. |
FlushCache | Marks the layer as flushed which will release cached resources during the next update. |
GetChildObjects | Overloaded. Gets the child objects of the current object. |
GetFeatures | Overloaded. Gets features from the operator chain. |
GetLocalizedDescription | Gets a localized version of the operator description in a specific language. |
GetLocalizedDisplayName | Gets a localized version of the operator display name in a specific language. |
GetLocalizedIsoMetadataDocument | Gets the path to an ISO 19139 metadata document for a specific language. |
GetRasterFeature | Overloaded. Gets raster features from the operator chain and merges them into a single raster. |
HasLocalizedDescription | Checks if a localized version of the operator description is available in a specific language. |
HasLocalizedDisplayName | Checks if a localized version of the operator display name is available in a specific language. |
HasLocalizedIsoMetadataDocument | Checks if an ISO 19139 metadata document is available for a specific language. |
SetLocalizedDescription | Sets a operator description in a specific language. |
SetLocalizedDisplayName | Sets a operator display name in a specific language. |
SetLocalizedIsoMetadataDocument | Sets the path to an ISO 19139 metadata document for the operator, for a specific language. |