wiki:FDORfc59

Version 6 (modified by gregboone, 13 years ago) ( diff )

--

FDO RFC 59 - Support New FDO Geometry Types

This page contains a request for comments document (RFC) for the FDO Open Source project. More FDO RFCs can be found on the RFCs page.

Status

RFC Template Version1.1
Submission DateApril 10, 2011
Last ModifiedGreg Boone, April 10, 2011
AuthorGreg Boone
RFC StatusProposed
Implementation StatusNot Ready For Review
Proposed Milestone3.7.0.0
Assigned PSC guide(s)Greg Boone
Voting History(vote date)
+1
+0
-0
-1

Overview

Add support to the FDO Geometry API for additional parametric geometry types: Circles, Elliptical Arcs, Cubic Splines and B-Splines.

Motivation

Since the FDO API will continue to be used by new and existing clients as an interchange format, support is required for additional parametric geometry types. Specifically support for elliptical arc, cubic spline, and bspline segments. This will allow more accurate interchange of parametric geometry from client applications without having to tessellate and either lose or create ad-hoc storage for parametric geometry information.

Proposed Solution

The following new Geometry Segment types will be added to the FDO Geometry API to support an enhanced set of parametric geometry types.

  • CircleSegment
  • EllipticalArcSegment
  • CubicSplineSegment
  • BSplineSegment

These types work with/derive from existing types that already exist in the FDO Geometry API. Those classes act as base or sibiling classes for the types being added. The existing types include:

  • CurveSegmentAbstract
  • ArcSegmentAbstract
  • CircularArcSegment
  • LineStringSegment

Appendix “A” describes these interfaces in their API form. For additional information of the complete set of FDO Geometry API classes, refer to the online FDO API documentation, starting with the following links:

Enum GeometryComponentType

The GeometryComponnetType enumeration will be enhanced to include enumerations for the new segment types listed above. The full enumeration is provided below, but the new types being added are as follows:

  • !FdoGeometryComponentType_EllipticalArcSegment
  • !FdoGeometryComponentType_CubicSplineSegmen
  • !FdoGeometryComponentType_BSplineSegment
  • !FdoGeometryComponentType_CircleSegment
/// \brief
/// Enumeration for components of Geometry.
/// 
/// \remarks
/// This enumeration applies to certain helper types that 
/// are used to compose other types which derive from FdoIGeometry.
///
enum FdoGeometryComponentType
{
    /// LinearRing type (FdoILinearRing).
    FdoGeometryComponentType_LinearRing = 129,

    /// CircularArcSegment type (FdoICircularArcSegment).
    FdoGeometryComponentType_CircularArcSegment = 130,

    /// LineStringSegment type (FdoILineStringSegment).
    FdoGeometryComponentType_LineStringSegment = 131,

    /// Ring type (FdoIRing).
    FdoGeometryComponentType_Ring = 132,

    /// EllipticalArcSegment type (FdoIEllipticalArcSegment).
    FdoGeometryComponentType_EllipticalArcSegment = 133,

    /// CubicSplineSegment type (FdoICubicSplineSegment).
    FdoGeometryComponentType_CubicSplineSegment = 135,

    /// BSplineSegment type (FdoIBSplineSegment).
    FdoGeometryComponentType_BSplineSegment = 136,	

    /// CircleSegment type (FdoICircleSegment).
    FdoGeometryComponentType_CircleSegment = 137
};

Implications

TBD.

Test Plan

TBD.

Funding/Resources

Autodesk to provide resources / funding

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.