using Mapbox.Unity.Map; namespace Mapbox.Unity.SourceLayers { public interface ISubLayerExtrusionOptions { /// /// Disable mesh extrusion for the features in this layer. /// void DisableExtrusion(); /// /// Sets the height value to be used for Absolute Height extrusion type. /// Same field is used for the maximum height of Range Extrusion type so beware /// of possible side effects. /// /// Fixed height value for all features in the layer. void SetAbsoluteHeight(float absoluteHeight); /// /// Change the minimum and maximum height values used for Range Height option. /// Maximum height is also used for Absolute Height option so beware of possible side /// effects. /// /// Lower bound to be used for extrusion /// Top bound to be used for extrusion void SetHeightRange(float minHeight, float maxHeight); /// /// Sets the extrusion multiplier which will be used only in the Y axis (height). /// /// Multiplier value. void SetExtrusionMultiplier(float multiplier); /// /// Changes extrusion type to "Absolute height" and extrudes all features by /// the given fixed value. /// /// Option to create top and side polygons after extrusion. /// Extrusion value /// Height multiplier void EnableAbsoluteExtrusion(ExtrusionGeometryType extrusionGeometryType, float height, float extrusionScaleFactor = 1); /// /// Changes extrusion type to "Property" and extrudes all features by /// the choosen property's value. /// /// Option to create top and side polygons after extrusion. /// Name of the property to use for extrusion /// Height multiplier void EnablePropertyExtrusion(ExtrusionGeometryType extrusionGeometryType, string propertyName = "height", float extrusionScaleFactor = 1); /// /// Changes extrusion type to "Minimum Height" and extrudes all features by /// the choosen property's value such that all vertices (roof) will be /// flat at the lowest vertex elevation (after terrain elevation taken into account). /// /// Option to create top and side polygons after extrusion. /// Name of the property to use for extrusion /// Height multiplier void EnableMinExtrusion(ExtrusionGeometryType extrusionGeometryType, string propertyName = "height", float extrusionScaleFactor = 1); /// /// Changes extrusion type to "Range Height" and extrudes all features by /// the choosen property's value such that all vertices (roof) will be /// flat at the highest vertex elevation (after terrain elevation taken into account). /// /// Option to create top and side polygons after extrusion. /// Name of the property to use for extrusion /// Height multiplier void EnableMaxExtrusion(ExtrusionGeometryType extrusionGeometryType, string propertyName = "height", float extrusionScaleFactor = 1); /// /// /// Changes extrusion type to "Minimum Height" and extrudes all features by /// the choosen property's value such that they'll be in provided range. /// Lower values will be increase to Minimum Height and higher values will /// be lowered to Maximum height. /// /// Option to create top and side polygons after extrusion. /// Lower bound to be used for extrusion /// Top bound to be used for extrusion /// Height multiplier void EnableRangeExtrusion(ExtrusionGeometryType extrusionGeometryType, float minHeight, float maxHeight, float extrusionScaleFactor = 1); } }