← Back to carmenta.com
Carmenta Engine SDK Documentation
×

CorridorOperator3D Class

Creates corridor geometries from LineGeometries.

Namespace: Carmenta.Engine
NuGet/Assembly: Carmenta.Engine.5.16.2.nupkg (in the CEOperators assembly)
Thread safety: Members defined in this class are, in general, not thread-safe. Show

Syntax

C#
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.

Three corridors with cross sections of type trough, rectangle 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

CustomCrossSection

RectangleCrossSection

TroughCrossSection

CircleCrossSection

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.

A texture is applied along a corridor with a rectangular cross section. The rectangle height is twice the width.

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.

The three degrees of edge emphasis can be applied to join edges and segment edges independently.

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

NameDescription
CorridorOperator3DInitializes a new instance of the CorridorOperator3D class.

Properties

NameDescription
CrossSectionGets or sets the CrossSection used to create corridors.
DescriptionGets or sets a short description of the operator. Inherited from Operator
DisplayNameGets or sets a display name for the operator. Inherited from Operator
GenerateJoinEdgesGets or sets whether edges are generated around joins.
GenerateSegmentEdgesGets or sets whether edges are generated along segments.
InputGets or sets the input operator, from which this operator reads features. Inherited from UnaryOperator
IsDisposedGets a value that tells whether the current CorridorOperator3D has been disposed. Inherited from EngineObject
IsoMetadataDocumentGets or sets the path to an ISO 19139 metadata document for the operator. Inherited from Operator
NameGets or sets the name of the operator. Inherited from Operator
NativeHandleGets the native Carmenta Engine kernel object the current CorridorOperator3D represents. Inherited from EngineObject
SmoothJoinsGets or sets the shading mode of joins.
SmoothSegmentsGets or sets the shading mode of segments.
TextureScaleFactorVGets or sets the texture scaling for textures along the corridor, in meters.
IUserProperties.UserPropertiesGets the AttributeSet that contains the user properties. Inherited from IUserProperties
VerticalModeGets or sets the VerticalMode that controls the orientation of the cross section.

Methods

NameDescription
CloneCreates a copy of an object. Inherited from EngineObject
DisposeReleases the reference to the native Carmenta Engine kernel instance the EngineObject represents. Inherited from EngineObject
EqualsDetermines whether this instance is equal to another. Inherited from EngineObject
FindChildObjectOverloaded. Finds the child object with the specified name. Inherited from Operator
FlushCacheMarks the layer as flushed which will release cached resources during the next update. Inherited from Operator
GetChildObjectsOverloaded. Gets the child objects of the current object. Inherited from Operator
GetFeaturesOverloaded. Gets features from the operator chain. Inherited from Operator
GetLocalizedDescriptionGets a localized version of the operator description in a specific language. Inherited from Operator
GetLocalizedDisplayNameGets a localized version of the operator display name in a specific language. Inherited from Operator
GetLocalizedIsoMetadataDocumentGets the path to an ISO 19139 metadata document for a specific language. Inherited from Operator
GetRasterFeatureOverloaded. Gets raster features from the operator chain and merges them into a single raster. Inherited from Operator
HasLocalizedDescriptionChecks if a localized version of the operator description is available in a specific language. Inherited from Operator
HasLocalizedDisplayNameChecks if a localized version of the operator display name is available in a specific language. Inherited from Operator
HasLocalizedIsoMetadataDocumentChecks if an ISO 19139 metadata document is available for a specific language. Inherited from Operator
SetLocalizedDescriptionSets a operator description in a specific language. Inherited from Operator
SetLocalizedDisplayNameSets a operator display name in a specific language. Inherited from Operator
SetLocalizedIsoMetadataDocumentSets the path to an ISO 19139 metadata document for the operator, for a specific language. Inherited from Operator

By accessing the information on this site you accept our terms and conditions and privacy policy.
This site uses cookies to enhance your experience and provide additional functionality.

Accept