// Copyright 2019 The MediaPipe Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto2";

package mediapipe;

import "mediapipe/framework/calculator.proto";
import "mediapipe/util/color.proto";
import "mediapipe/util/render_data.proto";

message DetectionsToRenderDataCalculatorOptions {
  extend CalculatorOptions {
    optional DetectionsToRenderDataCalculatorOptions ext = 248360806;
  }

  // If true, produces a RenderData packet with no annotation when the input
  // packet has no detection. Otherwise, it won't produce any packet.
  // Please note, regardless of this flag nothing will be produce if there is
  // no input packet for a timestamp.
  optional bool produce_empty_packet = 1 [default = true];

  // The delimiter to separate label(_id) and score.
  optional string text_delimiter = 2 [default = ","];

  // If true, each "label(_id),score" will be on a separate line.
  // Otherwise, all "label(_id),score" will be concatenated when the detection
  // has more than one label.
  optional bool one_label_per_line = 3 [default = false];

  // Rendering options for the label.
  optional RenderAnnotation.Text text = 4;

  // Thickness for drawing the label(s) and the location_data(box).
  optional double thickness = 5 [default = 1.0];

  // Color for drawing the label(s), feature_tag, and the location_data(box).
  optional Color color = 6;

  // An optional string that identifies this class of annotations
  // for the render data output this calculator produces.  If multiple
  // instances of this calculator are present in the graph, this value
  // should be unique among them.
  optional string scene_class = 7 [default = "DETECTION"];

  // If true, renders the detection id in the first line before the labels.
  optional bool render_detection_id = 8 [default = false];
}
