aboutsummaryrefslogtreecommitdiff
---
"$schema": "http://json-schema.org/schema#"
id: "opcut://opcut.yaml#"
definitions:
    params:
        type: object
        description: |
            calculation input parameters independent of calculation method
        required:
            - cut_width
            - panels
            - items
        properties:
            cut_width:
                type: number
                description: |
                    width of the guillotine cut
            min_initial_usage:
                type: boolean
                description: |
                    minimize usage of initial panels
            panels:
                type: object
                description: |
                    input panels (keys represent unique panel identifiers)
                patternProperties:
                    ".+":
                        "$ref": "opcut://opcut.yaml#/definitions/panel"
            items:
                type: object
                description: |
                    required items (keys represent unique item identifiers)
                patternProperties:
                    ".+":
                        "$ref": "opcut://opcut.yaml#/definitions/item"
    result:
        type: object
        description: |
            calculation result
        required:
            - params
            - used
            - unused
        properties:
            params:
                "$ref": "opcut://opcut.yaml#"
            used:
                type: array
                description: |
                    resulting panels associated with required items
                items:
                    "$ref": "opcut://opcut.yaml#/definitions/used"
            unused:
                type: array
                description: |
                    resulting unused panels
                items:
                    "$ref": "opcut://opcut.yaml#/definitions/unused"
    panel:
        type: object
        description: |
            single input panel
        required:
            - width
            - height
        properties:
            width:
                type: number
                description: |
                    panel's initial width
            height:
                type: number
                description: |
                    panel's initial height
    item:
        type: object
        description: |
            single required item
        required:
            - width
            - height
            - can_rotate
        properties:
            width:
                type: number
                description: |
                    items's width
            height:
                type: number
                description: |
                    items's height
            can_rotate:
                type: boolean
                description: |
                    can item be rotated (is grain direction irrelevant)
    used:
        type: object
        description: |
            single resulting panels associated with required item
        required:
            - panel
            - item
            - x
            - y
            - rotate
        properties:
            panel:
                type: string
                description: |
                    input panel identifier
            item:
                type: string
                description: |
                    matching required item identifier
            x:
                type: number
                description: |
                    used panel location based on input panel's width offset
            y:
                type: number
                description: |
                    used panel location based on input panel's height offset
            rotate:
                type: boolean
                description: |
                    is resulting panel rotated
    unused:
        type: object
        description: |
            single unused resulting panel
        required:
            - panel
            - width
            - height
            - x
            - y
        properties:
            panel:
                type: string
                description: |
                    input panel identifier
            width:
                type: number
                description: |
                    unused resulting panel's width
            height:
                type: number
                description: |
                    unused resulting panel's height
            x:
                type: number
                description: |
                    used panel location based on input panel's width offset
            y:
                type: number
                description: |
                    used panel location based on input panel's height offset
...