<> <> <> <Documentation>MultiGravity.tioga.>> <> <<>> DIRECTORY GGBasicTypes, GGInterfaceTypes; GGMultiGravity: CEDAR DEFINITIONS = BEGIN Caret: TYPE = GGInterfaceTypes.Caret; FeatureData: TYPE = GGInterfaceTypes.FeatureData; GGData: TYPE = GGInterfaceTypes.GGData; TriggerBag: TYPE = REF TriggerBagObj; TriggerBagObj: TYPE = GGInterfaceTypes.TriggerBagObj; AlignBag: TYPE = REF AlignBagObj; AlignBagObj: TYPE = GGInterfaceTypes.AlignBagObj; NearFeatures: TYPE = REF NearFeaturesObj; NearFeaturesObj: TYPE = RECORD [ features: SEQUENCE len: NAT OF FeatureData]; NearPoints: TYPE = REF NearPointsObj; NearPointsObj: TYPE = RECORD [ points: SEQUENCE len: NAT OF Point]; NearDistances: TYPE = REF NearDistancesObj; NearDistancesObj: TYPE = RECORD [ distances: SEQUENCE len: NAT OF REAL]; Point: TYPE = GGBasicTypes.Point; Map: PROC [testPoint: Point, criticalR: REAL, alignBag: AlignBag, sceneBag: TriggerBag, ggData: GGData, useAlignBag: BOOL] RETURNS [resultPoint: Point, feature: FeatureData, hitData: REF ANY]; <> StrictDistance: PROC [testPoint: Point, criticalR: REAL, alignBag: AlignBag, sceneBag: TriggerBag, ggData: GGData] RETURNS [resultPoint: Point, feature: FeatureData, hitData: REF ANY]; <> PointsPreferred: PROC [testPoint: Point, criticalR: REAL, innerR: REAL, alignBag: AlignBag, sceneBag: TriggerBag, ggData: GGData, useAlignBag: BOOL] RETURNS [resultPoint: Point, feature: FeatureData, hitData: REF ANY]; <> GoodPoint: TYPE = REF GoodPointObj; GoodPointObj: TYPE = RECORD [ dist: REAL, point: Point, featureData: FeatureData, -- this point hitData: REF ANY -- a description of this point ]; NearPointsAndCurves: TYPE = REF NearPointsAndCurvesObj; NearPointsAndCurvesObj: TYPE = RECORD [ things: SEQUENCE len: NAT OF GoodPoint]; <> MultiMap: PUBLIC PROC [testPoint: Point, criticalR: REAL, alignBag: AlignBag, sceneBag: TriggerBag, ggData: GGData, useAlignBag: BOOL] RETURNS [nearPointsAndCurves: NearPointsAndCurves, count: NAT]; <> <<>> MultiStrictDistance: PROC [testPoint: Point, criticalR: REAL, alignBag: AlignBag, sceneBag: TriggerBag, ggData: GGData] RETURNS [nearPointsAndCurves: NearPointsAndCurves, count: NAT]; <> MultiPointsPreferred: PROC [testPoint: Point, criticalR: REAL, innerR: REAL, alignBag: AlignBag, sceneBag: TriggerBag, ggData: GGData, useAlignBag: BOOL] RETURNS [nearPointsAndCurves: NearPointsAndCurves, count: NAT]; <> NewMultiGravityPool: PROC [] RETURNS [REF]; -- stored in GGData; temporary storage pool used by GGMultiGravityImpl END.