mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-20 00:51:41 +00:00
Auto-generate packet dataclasses with Jinja (#1374)
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/MultiTargetPNPResult.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include "photon/targeting/PnpResult.h"
|
||||
#include <stdint.h>
|
||||
#include <vector>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<MultiTargetPNPResult> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "ffc1cb847deb6e796a583a5b1885496b";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "PnpResult estimatedPose;int16[?] fiducialIDsUsed;";
|
||||
}
|
||||
|
||||
static photon::MultiTargetPNPResult Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet,
|
||||
const photon::MultiTargetPNPResult& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::MultiTargetPNPResult>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/PhotonPipelineMetadata.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<PhotonPipelineMetadata> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "2a7039527bda14d13028a1b9282d40a2";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "int64 sequenceID;int64 captureTimestampMicros;int64 "
|
||||
"publishTimestampMicros;";
|
||||
}
|
||||
|
||||
static photon::PhotonPipelineMetadata Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet,
|
||||
const photon::PhotonPipelineMetadata& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::PhotonPipelineMetadata>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/PhotonPipelineResult.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include "photon/targeting/MultiTargetPNPResult.h"
|
||||
#include "photon/targeting/PhotonPipelineMetadata.h"
|
||||
#include "photon/targeting/PhotonTrackedTarget.h"
|
||||
#include <optional>
|
||||
#include <stdint.h>
|
||||
#include <vector>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<PhotonPipelineResult> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "cb3e1605048ba49325888eb797399fe2";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "PhotonPipelineMetadata metadata;PhotonTrackedTarget[?] "
|
||||
"targets;MultiTargetPNPResult? multitagResult;";
|
||||
}
|
||||
|
||||
static photon::PhotonPipelineResult Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet,
|
||||
const photon::PhotonPipelineResult& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::PhotonPipelineResult>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/PhotonTrackedTarget.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include "photon/targeting/TargetCorner.h"
|
||||
#include <frc/geometry/Transform3d.h>
|
||||
#include <stdint.h>
|
||||
#include <vector>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<PhotonTrackedTarget> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "8fdada56b9162f2e32bd24f0055d7b60";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "float64 yaw;float64 pitch;float64 area;float64 skew;int32 "
|
||||
"fiducialId;int32 objDetectId;float32 objDetectConf;Transform3d "
|
||||
"bestCameraToTarget;Transform3d altCameraToTarget;float64 "
|
||||
"poseAmbiguity;TargetCorner[?] minAreaRectCorners;TargetCorner[?] "
|
||||
"detectedCorners;";
|
||||
}
|
||||
|
||||
static photon::PhotonTrackedTarget Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet,
|
||||
const photon::PhotonTrackedTarget& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::PhotonTrackedTarget>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/PnpResult.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include <frc/geometry/Transform3d.h>
|
||||
#include <stdint.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<PnpResult> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "0d1f2546b00f24718e30f38d206d4491";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "Transform3d best;Transform3d alt;float64 bestReprojErr;float64 "
|
||||
"altReprojErr;float64 ambiguity;";
|
||||
}
|
||||
|
||||
static photon::PnpResult Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet, const photon::PnpResult& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::PnpResult>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
#include <wpi/SymbolExports.h>
|
||||
|
||||
// Include myself
|
||||
#include "photon/dataflow/structures/Packet.h"
|
||||
#include "photon/targeting/TargetCorner.h"
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
template <>
|
||||
struct WPILIB_DLLEXPORT SerdeType<TargetCorner> {
|
||||
static constexpr std::string_view GetSchemaHash() {
|
||||
return "22b1ff7551d10215af6fb3672fe4eda8";
|
||||
}
|
||||
|
||||
static constexpr std::string_view GetSchema() {
|
||||
return "float64 x;float64 y;";
|
||||
}
|
||||
|
||||
static photon::TargetCorner Unpack(photon::Packet& packet);
|
||||
static void Pack(photon::Packet& packet, const photon::TargetCorner& value);
|
||||
};
|
||||
|
||||
static_assert(photon::PhotonStructSerializable<photon::TargetCorner>);
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "photon/targeting/PnpResult.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct MultiTargetPNPResult_PhotonStruct {
|
||||
photon::PnpResult estimatedPose;
|
||||
std::vector<int16_t> fiducialIDsUsed;
|
||||
|
||||
friend bool operator==(MultiTargetPNPResult_PhotonStruct const&,
|
||||
MultiTargetPNPResult_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct PhotonPipelineMetadata_PhotonStruct {
|
||||
int64_t sequenceID;
|
||||
int64_t captureTimestampMicros;
|
||||
int64_t publishTimestampMicros;
|
||||
|
||||
friend bool operator==(PhotonPipelineMetadata_PhotonStruct const&,
|
||||
PhotonPipelineMetadata_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
#include <optional>
|
||||
#include <vector>
|
||||
|
||||
#include "photon/targeting/MultiTargetPNPResult.h"
|
||||
#include "photon/targeting/PhotonPipelineMetadata.h"
|
||||
#include "photon/targeting/PhotonTrackedTarget.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct PhotonPipelineResult_PhotonStruct {
|
||||
photon::PhotonPipelineMetadata metadata;
|
||||
std::vector<photon::PhotonTrackedTarget> targets;
|
||||
std::optional<photon::MultiTargetPNPResult> multitagResult;
|
||||
|
||||
friend bool operator==(PhotonPipelineResult_PhotonStruct const&,
|
||||
PhotonPipelineResult_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include <frc/geometry/Transform3d.h>
|
||||
|
||||
#include "photon/targeting/TargetCorner.h"
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct PhotonTrackedTarget_PhotonStruct {
|
||||
double yaw;
|
||||
double pitch;
|
||||
double area;
|
||||
double skew;
|
||||
int32_t fiducialId;
|
||||
int32_t objDetectId;
|
||||
float objDetectConf;
|
||||
frc::Transform3d bestCameraToTarget;
|
||||
frc::Transform3d altCameraToTarget;
|
||||
double poseAmbiguity;
|
||||
std::vector<photon::TargetCorner> minAreaRectCorners;
|
||||
std::vector<photon::TargetCorner> detectedCorners;
|
||||
|
||||
friend bool operator==(PhotonTrackedTarget_PhotonStruct const&,
|
||||
PhotonTrackedTarget_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
#include <frc/geometry/Transform3d.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct PnpResult_PhotonStruct {
|
||||
frc::Transform3d best;
|
||||
frc::Transform3d alt;
|
||||
double bestReprojErr;
|
||||
double altReprojErr;
|
||||
double ambiguity;
|
||||
|
||||
friend bool operator==(PnpResult_PhotonStruct const&,
|
||||
PnpResult_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) Photon Vision.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// THIS std::FILE WAS AUTO-GENERATED BY ./photon-serde/generate_messages.py. DO
|
||||
// NOT MODIFY
|
||||
|
||||
// Includes for dependant types
|
||||
#include <stdint.h>
|
||||
|
||||
namespace photon {
|
||||
|
||||
struct TargetCorner_PhotonStruct {
|
||||
double x;
|
||||
double y;
|
||||
|
||||
friend bool operator==(TargetCorner_PhotonStruct const&,
|
||||
TargetCorner_PhotonStruct const&) = default;
|
||||
};
|
||||
|
||||
} // namespace photon
|
||||
Reference in New Issue
Block a user