CorridorOperator3D Class
Creates corridor geometries from LineGeometries.
NuGet/Assembly: Carmenta.Engine.5.16.2.nupkg (in the CEOperators assembly)
Syntax
public class CorridorOperator3D : UnaryOperator
Remarks
This operator generates 3-dimensional corridor meshes from line features. The operator accepts only line geometries, other features will be passed along up the operator chain. You can specify one of four types of cross section: rectangle, trough, circle and custom.
![]() |
You can use a constant type of cross section for your CorridorOperator3D, or you can let the type depend on a feature attribute by using a KeyedAttributeVariable<CrossSection> for the CrossSection property. Feature attributes can also be used to control the shape of cross sections, for example the width and height of a rectangle.
The corridor mesh can be visualized using an ordinary MeshVisualizer. Edges can be activated using GenerateJoinEdges and GenerateSegmentEdges properties and are visualized using a LineVisualizer.
Cross section types
Each of the four cross section types is derived from an abstract base type.
Cross section name | Shape | |
---|---|---|
| ||
| ||
| ||
|
Texturization
A corridor mesh built with any cross section can be textured with a Material attached to a MeshVisualizer. The exact mapping of the U coordinate depends on the cross section type, but generally the first vertex encountered from traversing clockwise from above the corridor is mapped at 0 and the mapping increases clockwise around the cross section ending at 1 returning at the starting vertex. The V coordinate is mapped at 0 at the start of the corridor and at 1 on a distance in meters from the start defined by the TextureScaleFactorV property. The texture is repeated along the V axis until the end of the corridor.
![]() |
Edge emphasis
Geometrically, the corridor will consist of plane quadrilaterals. The edges between them can be divided into two groups:
Join edges go around the corridor at each node of the input line.
Segment edges go along the corridor, parallel to each segment of the input line.
You may want more or less emphasis on the edges in the visualization. The emphasis can be controlled separately for join edges and segment edges via four boolean properties GenerateJoinEdges, GenerateSegmentEdges, SmoothJoins and SmoothSegments. When explicit join edges or segment edges are generated, they can be displayed with a LineVisualizer. When smoothness is turned on, the effects of lighting will be smoothed over the edges (although the silhouette of the corridor will remain angular). You can combine these settings into three degrees of edge emphasis:
For minimal emphasis, you should turn on the smoothness and turn off the edge generation.
For medium emphasis, you should turn off both smoothness and edge generation.
For maximal emphasis, you should turn off the smoothness and turn on edge generation.
There is of course also a fourth option: to use both smoothness and edge generation, but it is probably seldom desirable.
![]() |
Inheritance Hierarchy
System.Object (not available in C#)
EngineObject
Operator
UnaryOperator
CorridorOperator3D
Platforms
Windows, Linux, Android
CorridorOperator3D Members
The CorridorOperator3D type has the following members.
Constructors
Name | Description |
---|---|
CorridorOperator3D | Initializes a new instance of the CorridorOperator3D class. |
Properties
Name | Description |
---|---|
CrossSection | Gets or sets the CrossSection used to create corridors. |
Description | Gets or sets a short description of the operator. Inherited from Operator |
DisplayName | Gets or sets a display name for the operator. Inherited from Operator |
GenerateJoinEdges | Gets or sets whether edges are generated around joins. |
GenerateSegmentEdges | Gets or sets whether edges are generated along segments. |
Input | Gets or sets the input operator, from which this operator reads features. Inherited from UnaryOperator |
IsDisposed | Gets a value that tells whether the current CorridorOperator3D has been disposed. Inherited from EngineObject |
IsoMetadataDocument | Gets or sets the path to an ISO 19139 metadata document for the operator. Inherited from Operator |
Name | Gets or sets the name of the operator. Inherited from Operator |
NativeHandle | Gets the native Carmenta Engine kernel object the current CorridorOperator3D represents. Inherited from EngineObject |
SmoothJoins | Gets or sets the shading mode of joins. |
SmoothSegments | Gets or sets the shading mode of segments. |
TextureScaleFactorV | Gets or sets the texture scaling for textures along the corridor, in meters. |
IUserProperties.UserProperties | Gets the AttributeSet that contains the user properties. Inherited from IUserProperties |
VerticalMode | Gets or sets the VerticalMode that controls the orientation of the cross section. |
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. Inherited from Operator |
FlushCache | Marks the layer as flushed which will release cached resources during the next update. Inherited from Operator |
GetChildObjects | Overloaded. Gets the child objects of the current object. Inherited from Operator |
GetFeatures | Overloaded. Gets features from the operator chain. Inherited from Operator |
GetLocalizedDescription | Gets a localized version of the operator description in a specific language. Inherited from Operator |
GetLocalizedDisplayName | Gets a localized version of the operator display name in a specific language. Inherited from Operator |
GetLocalizedIsoMetadataDocument | Gets the path to an ISO 19139 metadata document for a specific language. Inherited from Operator |
GetRasterFeature | Overloaded. Gets raster features from the operator chain and merges them into a single raster. Inherited from Operator |
HasLocalizedDescription | Checks if a localized version of the operator description is available in a specific language. Inherited from Operator |
HasLocalizedDisplayName | Checks if a localized version of the operator display name is available in a specific language. Inherited from Operator |
HasLocalizedIsoMetadataDocument | Checks if an ISO 19139 metadata document is available for a specific language. Inherited from Operator |
SetLocalizedDescription | Sets a operator description in a specific language. Inherited from Operator |
SetLocalizedDisplayName | Sets a operator display name in a specific language. Inherited from Operator |
SetLocalizedIsoMetadataDocument | Sets the path to an ISO 19139 metadata document for the operator, for a specific language. Inherited from Operator |