39 lines
866 B
C++
39 lines
866 B
C++
//Copyright (c) 2020 Ultimaker B.V.
|
|
//CuraEngine is released under the terms of the AGPLv3 or higher.
|
|
|
|
#ifndef UTILS_HALF_EDGE_NODE_H
|
|
#define UTILS_HALF_EDGE_NODE_H
|
|
|
|
#include <list>
|
|
|
|
#include "../../Point.hpp"
|
|
|
|
namespace Slic3r::Arachne
|
|
{
|
|
|
|
template<typename node_data_t, typename edge_data_t, typename derived_node_t, typename derived_edge_t>
|
|
class HalfEdge;
|
|
|
|
template<typename node_data_t, typename edge_data_t, typename derived_node_t, typename derived_edge_t>
|
|
class HalfEdgeNode
|
|
{
|
|
using edge_t = derived_edge_t;
|
|
using node_t = derived_node_t;
|
|
public:
|
|
node_data_t data;
|
|
Point p;
|
|
edge_t* incident_edge = nullptr;
|
|
HalfEdgeNode(node_data_t data, Point p)
|
|
: data(data)
|
|
, p(p)
|
|
{}
|
|
|
|
bool operator==(const node_t& other)
|
|
{
|
|
return this == &other;
|
|
}
|
|
};
|
|
|
|
} // namespace Slic3r::Arachne
|
|
#endif // UTILS_HALF_EDGE_NODE_H
|