Version 8 (modified by 16 years ago) ( diff ) | ,
---|
FDO RFC 28 - Add Min/Max Expression Functions
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 Version | (1.0) |
Submission Date | October 20, 2008 |
Last Modified | Greg BooneTimestamp |
Author | Greg Boone |
RFC Status | Draft |
Implementation Status | Pending |
Proposed Milestone | 3.4.0.0 |
Assigned PSC guide(s) | Greg Boone |
Voting History | |
+1 | |
+0 | |
-0 | |
-1 |
Overview
This RFC follows from RFC 8 by adding geometric functions for MinX, MinY, MinZ, MaxX, MaxY and MaxZ.
Signatures
This RFC proposes the following signatures for the new functions:
double MinX(<geometry property>);
double MinY(<geometry property>);
double MinZ(<geometry property>);
double MaxX(<geometry property>);
double MaxY(<geometry property>);
double MaxZ(<geometry property>);
All of the above functions accept a geometry property only. The result of the functions depend on the provided geometry:
If the provided geometry is a point geometry, the result of the Min/Max functions is the x, y, z values of the point.
If the provided geometry is a line, the result of the Min/Max functions is the x, y, z values of the start and end points.
If the provided geometry is a polygon, the result of the Min/Max functions is the x, y, z values of the start and end points of the exterior ring of the polygon.
Like the standard functions listed in RFC 8, the user can get access to the geometric function definitions via the FDO interface GetWellKnownFunctions. The new functions will be categorized as geometry functions (!FdoFunctionCategoryType_Geometry).
Example
FdoPtr<FdoISelectAggregates> selectAggregates = (FdoISelectAggregates*)mConnection->CreateCommand (FdoCommandType_SelectAggregates); selectAggregates->SetFeatureClassName (L"POLE"); FdoPtr<FdoIdentifierCollection> idColl = selectAggregates->GetPropertyNames(); FdoPtr<FdoExpressionCollection> functionArgs = FdoExpressionCollection::Create(); FdoPtr<FdoIdentifier> arg1 = FdoIdentifier::Create(L"GEOMETRY"); functionArgs->Add(arg1); FdoPtr<FdoFunction> computedExpr = FdoFunction::Create(L"MINX", functionArgs); FdoPtr<FdoComputedIdentifier> computedId = FdoComputedIdentifier::Create(L"POLE_MINX", computedExpr); idColl->Add(computedId); FdoPtr<FdoIDataReader> reader = selectAggregates->Execute ();
Affected Providers
This enhancement will affect the following providers: SDF.
Required FDO Enhancements
No FDO enhancements are required.
Implications
This change will not cause any side-effects. No existing provider needs to change unless the provider wants to expose the new capability.
Test Plan
Existing unit tests will be enhanced to test those changes.
Funding/Resources
Autodesk to provide resource / funding to implement the feature for the affected providers.