{
    "@context": {
        "@version": 1.1,
        "geom-op": "https://comp-rob2b.github.io/metamodels/geometry/spatial-operators#",
        "geom-op-ext": "https://secorolab.github.io/metamodels/geometry/spatial-operators#",

        "InvertPose": {
            "@id": "geom-op:InvertPose",
            "@context": {
                "pose": { "@id": "geom-op:pose", "@type": "@id" },
                "out": { "@id": "geom-op:out", "@type": "@id" }
            }
        },

        "PoseDiffEvaluator": {
            "@id": "geom-op-ext:PoseDiffEvaluator",
            "@context": {
                "in1": { "@id": "geom-op:in1", "@type": "@id" },
                "in2": { "@id": "geom-op:in2", "@type": "@id" },
                "out": { "@id": "geom-op:out", "@type": "@id" }
            }
        },

        "PoseToAngularDistance": {
            "@id": "geom-op-ext:PoseToAngularDistance",
            "@context": {
                "pose": { "@id": "geom-op:pose", "@type": "@id" },
                "angular-distance": { "@id": "geom-op-ext:angular-distance", "@type": "@id" }
            }
        },

        "RotationVectorFromDirections": {
            "@id": "geom-op-ext:RotationVectorFromDirections",
            "@context": {
                "in1": { "@id": "geom-op:in1", "@type": "@id" },
                "in2": { "@id": "geom-op:in2", "@type": "@id" },
                "out": { "@id": "geom-op:out", "@type": "@id" }
            }
        },

        "AngleGradientFromDirections": {
            "@id": "geom-op-ext:AngleGradientFromDirections",
            "@context": {
                "in1": { "@id": "geom-op:in1", "@type": "@id" },
                "in2": { "@id": "geom-op:in2", "@type": "@id" },
                "gradient": { "@id": "geom-op-ext:gradient", "@type": "@id" }
            }
        },

        "DirectionPlaneToAngularDistance": {
            "@id": "geom-op-ext:DirectionPlaneToAngularDistance",
            "@context": {
                "in1": { "@id": "geom-op:in1", "@type": "@id" },
                "in2": { "@id": "geom-op:in2", "@type": "@id" },
                "angle": { "@id": "geom-op:angle", "@type": "@id" },
                "gradient": { "@id": "geom-op-ext:gradient", "@type": "@id" }
            }
        },

        "ComposeOrientation": {
            "@id": "geom-op-ext:ComposeOrientation",
            "@context": {
                "in1": { "@id": "geom-op:in1", "@type": "@id" },
                "in2": { "@id": "geom-op:in2", "@type": "@id" },
                "composite": { "@id": "geom-op:composite", "@type": "@id" }
            }
        },

        "PathProjection": {
            "@id": "geom-op-ext:PathProjection",
            "@context": {
                "path": { "@id": "geom-op-ext:path", "@type": "@id" },
                "pose": { "@id": "geom-op:pose", "@type": "@id" },
                "path-parameter": { "@id": "geom-op-ext:path-parameter", "@type": "@id" }
            }
        },

        "PathEvaluator": {
            "@id": "geom-op-ext:PathEvaluator",
            "@context": {
                "path": { "@id": "geom-op-ext:path", "@type": "@id" },
                "path-parameter": { "@id": "geom-op-ext:path-parameter", "@type": "@id" },
                "out": { "@id": "geom-op:out", "@type": "@id" }
            }
        },

        "PathTangentFrame": {
            "@id": "geom-op-ext:PathTangentFrame",
            "@context": {
                "path": { "@id": "geom-op-ext:path", "@type": "@id" },
                "path-parameter": { "@id": "geom-op-ext:path-parameter", "@type": "@id" },
                "tangent": { "@id": "geom-op-ext:tangent", "@type": "@id" },
                "normal-a": { "@id": "geom-op-ext:normal-a", "@type": "@id" },
                "normal-b": { "@id": "geom-op-ext:normal-b", "@type": "@id" }
            }
        },

        "TwistToLinearVelocityAlong": {
            "@id": "geom-op-ext:TwistToLinearVelocityAlong",
            "@context": {
                "in": { "@id": "geom-op:in", "@type": "@id" },
                "direction": { "@id": "geom-op:direction", "@type": "@id" },
                "along-speed": { "@id": "geom-op-ext:along-speed", "@type": "@id" }
            }
        },

        "PointPlaneToLinearDistance": {
            "@id": "geom-op-ext:PointPlaneToLinearDistance",
            "@context": {
                "in1":       { "@id": "geom-op:in1", "@type": "@id" },
                "in2":       { "@id": "geom-op:in2", "@type": "@id" },
                "direction": { "@id": "geom-op:direction", "@type": "@id" },
                "distance":  { "@id": "geom-op:distance", "@type": "@id" },
                "gradient":  { "@id": "geom-op-ext:gradient", "@type": "@id" }
            }
        },

        "PointLineToLinearDistance": {
            "@id": "geom-op-ext:PointLineToLinearDistance",
            "@context": {
                "in1":       { "@id": "geom-op:in1", "@type": "@id" },
                "in2":       { "@id": "geom-op:in2", "@type": "@id" },
                "direction": { "@id": "geom-op:direction", "@type": "@id" },
                "distance":  { "@id": "geom-op:distance", "@type": "@id" },
                "gradient":  { "@id": "geom-op-ext:gradient", "@type": "@id" }
            }
        },

        "PointOnLineProjection": {
            "@id": "geom-op-ext:PointOnLineProjection",
            "@context": {
                "in1":       { "@id": "geom-op:in1", "@type": "@id" },
                "in2":       { "@id": "geom-op:in2", "@type": "@id" },
                "direction": { "@id": "geom-op:direction", "@type": "@id" },
                "distance":  { "@id": "geom-op:distance", "@type": "@id" },
                "gradient":  { "@id": "geom-op-ext:gradient", "@type": "@id" }
            }
        },

        "LineLineToLinearDistance": {
            "@id": "geom-op-ext:LineLineToLinearDistance",
            "@context": {
                "in1":      { "@id": "geom-op:in1", "@type": "@id" },
                "in2":      { "@id": "geom-op:in2", "@type": "@id" },
                "pose":     { "@id": "geom-op:pose", "@type": "@id" },
                "distance": { "@id": "geom-op:distance", "@type": "@id" },
                "gradient": { "@id": "geom-op-ext:gradient", "@type": "@id" }
            }
        },

        "LineOnLineProjection": {
            "@id": "geom-op-ext:LineOnLineProjection",
            "@context": {
                "in1":      { "@id": "geom-op:in1", "@type": "@id" },
                "in2":      { "@id": "geom-op:in2", "@type": "@id" },
                "pose":     { "@id": "geom-op:pose", "@type": "@id" },
                "distance": { "@id": "geom-op:distance", "@type": "@id" },
                "gradient": { "@id": "geom-op-ext:gradient", "@type": "@id" }
            }
        }
    }
}
