11#include <opensubdiv/sdc/crease.h>
55 if (num_requested_edges != mesh_topology.
getNumEdges()) {
76 const int num_requested_faces = converter->
getNumFaces(converter);
77 if (num_requested_faces != mesh_topology.
getNumFaces()) {
81 std::vector<int> vertices_of_face;
82 for (
int face_index = 0; face_index < num_requested_faces; ++face_index) {
88 vertices_of_face.resize(num_face_vertices);
89 converter->
getFaceVertices(converter, face_index, vertices_of_face.data());
121 const int vertex_index)
126 return OpenSubdiv::Sdc::Crease::SHARPNESS_INFINITE;
140 for (
int vertex_index = 0; vertex_index < num_vertices; ++vertex_index) {
144 if (current_sharpness != requested_sharpness) {
168 for (
int edge_index = 0; edge_index < num_edges; ++edge_index) {
172 if (current_sharpness != requested_sharpness) {
176 if (current_sharpness < 1e-6f) {
180 int requested_edge_vertices[2];
181 converter->
getEdgeVertices(converter, edge_index, requested_edge_vertices);
183 edge_index, requested_edge_vertices[0], requested_edge_vertices[1]))
bool isEqualToConverter(const OpenSubdiv_Converter *converter) const
bool isEdgeEqual(int edge_index, int expected_v1, int expected_v2) const
float getEdgeSharpness(int edge_index) const
int getNumVertices() const
int getNumFaceVertices(int face_index) const
bool isFaceVertexIndicesEqual(int face_index, int num_expected_face_vertex_indices, const int *expected_face_vertex_indices) const
float getVertexSharpness(int vertex_index) const
static bool isEqualVertexTags(const MeshTopology &mesh_topology, const OpenSubdiv_Converter *converter)
static bool isEqualGeometry(const MeshTopology &mesh_topology, const OpenSubdiv_Converter *converter)
static int getEffectiveNumEdges(const OpenSubdiv_Converter *converter)
static bool isEqualEdgeTags(const MeshTopology &mesh_topology, const OpenSubdiv_Converter *converter)
static float getEffectiveEdgeSharpness(const OpenSubdiv_Converter *converter, const int edge_index)
static float getEffectiveVertexSharpness(const OpenSubdiv_Converter *converter, const int vertex_index)
static bool isEqualGeometryCounters(const MeshTopology &mesh_topology, const OpenSubdiv_Converter *converter)
static bool isEqualGeometryEdge(const MeshTopology &mesh_topology, const OpenSubdiv_Converter *converter)
static bool isEqualTags(const MeshTopology &mesh_topology, const OpenSubdiv_Converter *converter)
static bool isEqualGeometryFace(const MeshTopology &mesh_topology, const OpenSubdiv_Converter *converter)
int(* getNumFaceVertices)(const OpenSubdiv_Converter *converter, const int face_index)
int(* getNumEdges)(const OpenSubdiv_Converter *converter)
float(* getEdgeSharpness)(const OpenSubdiv_Converter *converter, const int edge_index)
int(* getNumFaces)(const OpenSubdiv_Converter *converter)
void(* getFaceVertices)(const OpenSubdiv_Converter *converter, const int face_index, int *face_vertices)
bool(* isInfiniteSharpVertex)(const OpenSubdiv_Converter *converter, const int vertex_index)
float(* getVertexSharpness)(const OpenSubdiv_Converter *converter, const int vertex_index)
void(* getEdgeVertices)(const OpenSubdiv_Converter *converter, const int edge_index, int edge_vertices[2])
int(* getNumVertices)(const OpenSubdiv_Converter *converter)