// @generated by protoc-gen-es v1.10.0 with parameter "target=ts,import_extension=none"
// @generated from file draw/v1/drawing.proto (package draw.v1, syntax proto3)
/* eslint-disable */
// @ts-nocheck
import { Message, proto3 } from "@bufbuild/protobuf";
import { Pose, PoseInFrame, Vector3 } from "../../common/v1/common_pb";
import { Metadata } from "./metadata_pb";
/**
 * Arrows represents a set of arrows in 3D space
 * Metadata:
 * - colors: []uint8 of a single color or a color per arrow
 *   defaults to [0, 128, 0] (green)
 * - color format: the format of the colors field, defaults to COLOR_FORMAT_RGB
 * - opacities: []uint8 of a single opacity or a opacity per arrow
 *   defaults to [255] (fully opaque)
 *
 * @generated from message draw.v1.Arrows
 */
export class Arrows extends Message {
    /**
     * The poses of the arrows
     * float32 array of poses: [x, y, z, ox, oy, oz]
     *
     * @generated from field: bytes poses = 1;
     */
    poses = new Uint8Array(0);
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "draw.v1.Arrows";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "poses", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
    ]);
    static fromBinary(bytes, options) {
        return new Arrows().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Arrows().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Arrows().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Arrows, a, b);
    }
}
/**
 * Line represents a line in 3D space
 * Metadata:
 * - colors: []uint8 of a single color or a color per line point
 *   defaults to [0, 0, 255] (blue)
 * - color format: the format of the colors field, defaults to COLOR_FORMAT_RGB
 * - opacities: []uint8 of a single opacity or a opacity per line point
 *   defaults to [255] (fully opaque)
 *
 * @generated from message draw.v1.Line
 */
export class Line extends Message {
    /**
     * The positions of the line dots
     * float32 array of positions: [x, y, z, ...]
     *
     * @generated from field: bytes positions = 1;
     */
    positions = new Uint8Array(0);
    /**
     * optional width of the line in millimeters, defaults to 5
     *
     * @generated from field: optional float line_width = 2;
     */
    lineWidth;
    /**
     * optional size of the dots in millimeters, defaults to 10
     *
     * @generated from field: optional float dot_size = 3;
     */
    dotSize;
    /**
     * optional colors for the line dots
     * []uint8 of a single color: [r, g, b, a]
     * or one color per dot: [r, g, b, a, ...]
     *
     * @generated from field: optional bytes dot_colors = 4;
     */
    dotColors;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "draw.v1.Line";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "positions", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
        { no: 2, name: "line_width", kind: "scalar", T: 2 /* ScalarType.FLOAT */, opt: true },
        { no: 3, name: "dot_size", kind: "scalar", T: 2 /* ScalarType.FLOAT */, opt: true },
        { no: 4, name: "dot_colors", kind: "scalar", T: 12 /* ScalarType.BYTES */, opt: true },
    ]);
    static fromBinary(bytes, options) {
        return new Line().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Line().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Line().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Line, a, b);
    }
}
/**
 * Points represents a set of points in 3D space
 * Metadata:
 * - colors: []uint8 of a single color or a color per point
 *   defaults to [128, 128, 128] (gray)
 * - color format: the format of the colors field, defaults to COLOR_FORMAT_RGB
 * - opacities: []uint8 of a single opacity or a opacity per point
 *   defaults to [255] (fully opaque)
 *
 * @generated from message draw.v1.Points
 */
export class Points extends Message {
    /**
     * The positions of the points
     * float32 array of positions: [x, y, z, ...]
     *
     * @generated from field: bytes positions = 1;
     */
    positions = new Uint8Array(0);
    /**
     * Size of the points in millimeters, defaults to 10
     *
     * @generated from field: optional float point_size = 2;
     */
    pointSize;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "draw.v1.Points";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "positions", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
        { no: 2, name: "point_size", kind: "scalar", T: 2 /* ScalarType.FLOAT */, opt: true },
    ]);
    static fromBinary(bytes, options) {
        return new Points().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Points().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Points().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Points, a, b);
    }
}
/**
 * ModelAsset represents the type of model
 *
 * @generated from message draw.v1.ModelAsset
 */
export class ModelAsset extends Message {
    /**
     * The mime type of the model asset
     *
     * @generated from field: string mime_type = 1;
     */
    mimeType = "";
    /**
     * Expected file size in bytes (helpful for progress tracking)
     *
     * @generated from field: optional uint64 size_bytes = 2;
     */
    sizeBytes;
    /**
     * The content of the model asset
     *
     * @generated from oneof draw.v1.ModelAsset.content
     */
    content = { case: undefined };
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "draw.v1.ModelAsset";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "mime_type", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 2, name: "size_bytes", kind: "scalar", T: 4 /* ScalarType.UINT64 */, opt: true },
        { no: 3, name: "url", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "content" },
        { no: 4, name: "data", kind: "scalar", T: 12 /* ScalarType.BYTES */, oneof: "content" },
    ]);
    static fromBinary(bytes, options) {
        return new ModelAsset().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new ModelAsset().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new ModelAsset().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(ModelAsset, a, b);
    }
}
/**
 * Model represents a 3D model in various formats
 * Metadata:
 * - colors: []uint8 of no colors
 *
 * @generated from message draw.v1.Model
 */
export class Model extends Message {
    /**
     * The list of assets that make up the model
     *
     * @generated from field: repeated draw.v1.ModelAsset assets = 1;
     */
    assets = [];
    /**
     * Uniform scale factor, defaults to [1.0, 1.0, 1.0]
     *
     * @generated from field: optional viam.common.v1.Vector3 scale = 2;
     */
    scale;
    /**
     * Name ofI the animation to play, defaults to empty string (no animation)
     *
     * @generated from field: optional string animation_name = 3;
     */
    animationName;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "draw.v1.Model";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "assets", kind: "message", T: ModelAsset, repeated: true },
        { no: 2, name: "scale", kind: "message", T: Vector3, opt: true },
        { no: 3, name: "animation_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
    ]);
    static fromBinary(bytes, options) {
        return new Model().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Model().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Model().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Model, a, b);
    }
}
/**
 * Nurbs represents a NURBS curve in 3D space
 * Metadata:
 * - colors: []uint8 of a single color or a color per NURBS control point
 *   defaults to [0, 255, 255] (cyan)
 * - color format: the format of the colors field, defaults to COLOR_FORMAT_RGB
 * - opacities: []uint8 of a single opacity or a opacity per NURBS control point
 *   defaults to [255] (fully opaque)
 *
 * @generated from message draw.v1.Nurbs
 */
export class Nurbs extends Message {
    /**
     * The control points of the NURBS
     * []float32 of poses: [x, y, z, ox, oy, oz, theta, ...]
     *
     * @generated from field: bytes control_points = 1;
     */
    controlPoints = new Uint8Array(0);
    /**
     * The knots of the NURBS
     * float32 array of knots: [knot, ...]
     *
     * @generated from field: bytes knots = 2;
     */
    knots = new Uint8Array(0);
    /**
     * The degree of the NURBS, defaults to 3
     *
     * @generated from field: optional int32 degree = 3;
     */
    degree;
    /**
     * The weights of the NURBS, defaults to [1, 1, 1, ...]
     * float32 array of weights: [weight, ...]
     *
     * @generated from field: optional bytes weights = 4;
     */
    weights;
    /**
     * optional width of the line in millimeters, defaults to 5
     *
     * @generated from field: optional float line_width = 5;
     */
    lineWidth;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "draw.v1.Nurbs";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "control_points", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
        { no: 2, name: "knots", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
        { no: 3, name: "degree", kind: "scalar", T: 5 /* ScalarType.INT32 */, opt: true },
        { no: 4, name: "weights", kind: "scalar", T: 12 /* ScalarType.BYTES */, opt: true },
        { no: 5, name: "line_width", kind: "scalar", T: 2 /* ScalarType.FLOAT */, opt: true },
    ]);
    static fromBinary(bytes, options) {
        return new Nurbs().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Nurbs().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Nurbs().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Nurbs, a, b);
    }
}
/**
 * @generated from message draw.v1.Shape
 */
export class Shape extends Message {
    /**
     * The center of the shape
     *
     * @generated from field: viam.common.v1.Pose center = 1;
     */
    center;
    /**
     * The label of the shape
     *
     * @generated from field: string label = 2;
     */
    label = "";
    /**
     * The type of the shape
     *
     * @generated from oneof draw.v1.Shape.geometry_type
     */
    geometryType = { case: undefined };
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "draw.v1.Shape";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "center", kind: "message", T: Pose },
        { no: 2, name: "label", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 3, name: "arrows", kind: "message", T: Arrows, oneof: "geometry_type" },
        { no: 4, name: "line", kind: "message", T: Line, oneof: "geometry_type" },
        { no: 5, name: "points", kind: "message", T: Points, oneof: "geometry_type" },
        { no: 6, name: "model", kind: "message", T: Model, oneof: "geometry_type" },
        { no: 7, name: "nurbs", kind: "message", T: Nurbs, oneof: "geometry_type" },
    ]);
    static fromBinary(bytes, options) {
        return new Shape().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Shape().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Shape().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Shape, a, b);
    }
}
/**
 * For non-physical visualization shapes
 *
 * @generated from message draw.v1.Drawing
 */
export class Drawing extends Message {
    /**
     * The name of the shape
     *
     * @generated from field: string reference_frame = 1;
     */
    referenceFrame = "";
    /**
     * The pose of the shape as observed through it's parent frame/the world
     *
     * @generated from field: viam.common.v1.PoseInFrame pose_in_observer_frame = 2;
     */
    poseInObserverFrame;
    /**
     * The shape of the drawing
     *
     * @generated from field: optional draw.v1.Shape physical_object = 3;
     */
    physicalObject;
    /**
     * The UUID of the shape
     *
     * @generated from field: bytes uuid = 4;
     */
    uuid = new Uint8Array(0);
    /**
     * The metadata of the shape
     *
     * @generated from field: optional draw.v1.Metadata metadata = 5;
     */
    metadata;
    constructor(data) {
        super();
        proto3.util.initPartial(data, this);
    }
    static runtime = proto3;
    static typeName = "draw.v1.Drawing";
    static fields = proto3.util.newFieldList(() => [
        { no: 1, name: "reference_frame", kind: "scalar", T: 9 /* ScalarType.STRING */ },
        { no: 2, name: "pose_in_observer_frame", kind: "message", T: PoseInFrame },
        { no: 3, name: "physical_object", kind: "message", T: Shape, opt: true },
        { no: 4, name: "uuid", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
        { no: 5, name: "metadata", kind: "message", T: Metadata, opt: true },
    ]);
    static fromBinary(bytes, options) {
        return new Drawing().fromBinary(bytes, options);
    }
    static fromJson(jsonValue, options) {
        return new Drawing().fromJson(jsonValue, options);
    }
    static fromJsonString(jsonString, options) {
        return new Drawing().fromJsonString(jsonString, options);
    }
    static equals(a, b) {
        return proto3.util.equals(Drawing, a, b);
    }
}
