// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Attribute {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub str_value: ::prost::alloc::string::String,
    #[prost(double, repeated, tag = "4")]
    pub fl_value: ::prost::alloc::vec::Vec<f64>,
}
impl ::prost::Name for Attribute {
    const NAME: &'static str = "Attribute";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Attribute"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Attribute"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Edge {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int64, tag = "2")]
    pub origin_node: i64,
    #[prost(int64, tag = "3")]
    pub target_node: i64,
    #[prost(int64, tag = "4")]
    pub edge_id: i64,
    #[prost(double, repeated, tag = "5")]
    pub plane_coefficients: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "6")]
    pub plane_information_matrix: ::prost::alloc::vec::Vec<f64>,
    #[prost(message, optional, tag = "7")]
    pub information_matrix: ::core::option::Option<
        super::super::std_msgs::msg::Float64MultiArray,
    >,
    #[prost(message, optional, tag = "8")]
    pub measurement_transform: ::core::option::Option<
        super::super::geometry_msgs::msg::Transform,
    >,
    #[prost(message, repeated, tag = "9")]
    pub attributes: ::prost::alloc::vec::Vec<Attribute>,
}
impl ::prost::Name for Edge {
    const NAME: &'static str = "Edge";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Edge".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Edge".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Node {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub id: i32,
    #[prost(string, tag = "3")]
    pub r#type: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "4")]
    pub attributes: ::prost::alloc::vec::Vec<Attribute>,
}
impl ::prost::Name for Node {
    const NAME: &'static str = "Node";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Node".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Node".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Graph {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "3")]
    pub nodes: ::prost::alloc::vec::Vec<Node>,
    #[prost(message, repeated, tag = "4")]
    pub edges: ::prost::alloc::vec::Vec<Edge>,
}
impl ::prost::Name for Graph {
    const NAME: &'static str = "Graph";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Graph".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Graph".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Keyframe {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "3")]
    pub id: i32,
    #[prost(string, tag = "4")]
    pub r#type: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub pointcloud: ::core::option::Option<super::super::sensor_msgs::msg::PointCloud2>,
    #[prost(message, optional, tag = "6")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
}
impl ::prost::Name for Keyframe {
    const NAME: &'static str = "Keyframe";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Keyframe"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Keyframe"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoomKeyframe {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "3")]
    pub id: i32,
    #[prost(message, optional, tag = "4")]
    pub pointcloud: ::core::option::Option<super::super::sensor_msgs::msg::PointCloud2>,
    #[prost(message, optional, tag = "5")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(int32, repeated, tag = "6")]
    pub keyframes_ids: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, tag = "7")]
    pub planes_ids: ::prost::alloc::vec::Vec<i32>,
}
impl ::prost::Name for RoomKeyframe {
    const NAME: &'static str = "RoomKeyframe";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.RoomKeyframe"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.RoomKeyframe"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GraphKeyframes {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub r#type: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub robot: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "4")]
    pub keyframes: ::prost::alloc::vec::Vec<Keyframe>,
}
impl ::prost::Name for GraphKeyframes {
    const NAME: &'static str = "GraphKeyframes";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.GraphKeyframes"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.GraphKeyframes"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Match {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "3")]
    pub basis_nodes: ::prost::alloc::vec::Vec<Node>,
    #[prost(message, repeated, tag = "4")]
    pub target_nodes: ::prost::alloc::vec::Vec<Node>,
    #[prost(message, repeated, tag = "5")]
    pub edges: ::prost::alloc::vec::Vec<Edge>,
}
impl ::prost::Name for Match {
    const NAME: &'static str = "Match";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Match".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.situational_graphs_reasoning_msgs.msg.Match".into()
    }
}
