<> <> <> <> <<>> DIRECTORY Rope, SVAssembly, SVDescribe, SVInterfaceTypes, SVSceneTypes; SVDescribeImpl: CEDAR PROGRAM IMPORTS SVAssembly EXPORTS SVDescribe = BEGIN Slice: TYPE = SVSceneTypes.Slice; FeatureData: TYPE = SVInterfaceTypes.FeatureData; SliceDescriptor: TYPE = SVSceneTypes.SliceDescriptor; SVData: TYPE = SVInterfaceTypes.SVData; DescribeFeature: PUBLIC PROC [feature: FeatureData, hitData: REF ANY, svData: SVData] RETURNS [description: Rope.ROPE] = { IF feature = NIL THEN RETURN["nothing"] ELSE { SELECT feature.type FROM slice => { slice: Slice _ NARROW[feature.shape, SliceDescriptor].slice; description _ SVAssembly.DescribeHit[slice, hitData]; }; distanceLine => description _ "distance line"; slopeLine => description _ "slope line"; angleLine => description _ "angle line"; symmetryLine => description _ "symmetry line"; radiiCircle => description _ "compass circle"; ENDCASE => ERROR; }; }; END.