= !MapGuide RFC 59 - Add TIN layer type in Layer Defination Schema = This page contains an change request (RFC) for the !MapGuide Open Source project. More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. == Status == ||RFC Template Version||(1.0)|| ||Submission Date||(Date/Time submitted)|| ||Last Modified||Evan Yan [[Timestamp]]|| ||Author||Evan Yan|| ||RFC Status||draft|| ||Implementation Status||under development|| ||Proposed Milestone||(e.g. 1.1, 1.3, 2.1)|| ||Assigned PSC guide(s)||(when determined)|| ||'''Voting History'''||(vote date)|| ||+1|||| ||+0|||| ||-0|||| ||-1|||| ||no vote|| || == Overview == The purpose of this RFC is to add a new schema in Layer Definition XML schema for TIN (Triangulated Irregular Networks). TIN layer has many characteristics that are different from Vector and Grid layers, it’s necessary to create a new layer type for TIN. == Motivation == The existing Layer Definition XML schema does not contains a definition for TIN layer. So, currently we create a raster image in order to show a TIN surface. Adding TIN layer schema will make it easier to support TIN layer and there will be a real TIN surface. We can see points, edges and faces if we zoom into the surface. == Proposed Solution == The proposed solution contains modifications to: the Layer Definition XML schema, the FDO provider, and the Stylization project. ==Layer Definition Schema Modifications== The schema modifications could be made forward/backward compatible. However, it seems likely that [wiki:MapGuideRfc14 MapGuide RFC 14] will require a schema version update, in which case the modifications from this RFC (and [wiki:MapGuideRfc16 MapGuide RFC 16]) can be rolled into the same update. {{{ ******************** Tin layer ******************** A layer for tin data. Specifies the geometry property that should be used to get the geometries. A boolean FDO expression that specifies which features to return. No filter means pass all features through. The stylization for a specified scale range. The zoomed in part of the scale range. Defaults to 0 if not specified. Inclusive. The zoomed out part of the scale range. Defaults to the application's maximum value if not specified. Exclusive. The elevation information of tin surface. The user defined zero value. Defaults to 0 if not specified. Determines how to scale the elevation. Defaults to 1 if not specified. All points in tin surface. All edges in tin surface. All triangles faces in tin surface. Encapsulate a style for a tin source. The label for the Rule to be displayed in the legend. A filter for the Rule. This is a boolean FDO expression. Any features that pass this filter are styled using this rule's stylization. A label for the Rule. Does not apply to tin ColorRule. The color to use. Style rule for a face type. Specifies how to shade given a band and a light source. Azimuth of the sun in degrees. Altitude of the sun in degrees. }}} ==== Example === == FDO Provider Modifications == == Implications == The new TIN layer definition will have an impact on the LayerDefinition XML schema. Backwards compatibility should be maintained and will not break any existing applications. That is to say, applications with later version can completely open files created by applications with former version, while applications with former version should ignore TIN layer when opening file created by applications with later version. Documentation will need to be updated for the new functionality. FDO Provider will be changed to support TIN connection. == Test Plan == Unit tests should include creating TIN layers, stylizing TIN layers and TIN FDO Provider. Backward compatibility should be tested. Files created by new application should not break existing applications. == Funding/Resources == Autodesk to provide resources/funding.