Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/subdiv_converter_mesh.c
| Show First 20 Lines • Show All 162 Lines • ▼ Show 20 Lines | static float get_edge_sharpness(const OpenSubdiv_Converter *converter, | ||||
| int manifold_edge_index) | int manifold_edge_index) | ||||
| { | { | ||||
| ConverterStorage *storage = converter->user_data; | ConverterStorage *storage = converter->user_data; | ||||
| #if BUGGY_SIMPLE_SCHEME_WORKAROUND | #if BUGGY_SIMPLE_SCHEME_WORKAROUND | ||||
| if (storage->settings.is_simple) { | if (storage->settings.is_simple) { | ||||
| return 10.0f; | return 10.0f; | ||||
| } | } | ||||
| #endif | #endif | ||||
| if (!storage->settings.use_creases) { | |||||
| return 0.0f; | |||||
| } | |||||
| const int edge_index = | const int edge_index = | ||||
| storage->manifold_edge_index_reverse[manifold_edge_index]; | storage->manifold_edge_index_reverse[manifold_edge_index]; | ||||
| const MEdge *medge = storage->mesh->medge; | const MEdge *medge = storage->mesh->medge; | ||||
| const float edge_crease = (float)medge[edge_index].crease / 255.0f; | const float edge_crease = (float)medge[edge_index].crease / 255.0f; | ||||
| return edge_crease * edge_crease * 10.0f; | return edge_crease * edge_crease * 10.0f; | ||||
| } | } | ||||
| static bool is_infinite_sharp_vertex(const OpenSubdiv_Converter *converter, | static bool is_infinite_sharp_vertex(const OpenSubdiv_Converter *converter, | ||||
| int manifold_vertex_index) | int manifold_vertex_index) | ||||
| { | { | ||||
| ConverterStorage *storage = converter->user_data; | ConverterStorage *storage = converter->user_data; | ||||
| #if BUGGY_SIMPLE_SCHEME_WORKAROUND | #if BUGGY_SIMPLE_SCHEME_WORKAROUND | ||||
| if (storage->settings.is_simple) { | if (storage->settings.is_simple) { | ||||
| return true; | return true; | ||||
| } | } | ||||
| #endif | #endif | ||||
| const int vertex_index = | const int vertex_index = | ||||
| storage->manifold_vertex_index_reverse[manifold_vertex_index]; | storage->manifold_vertex_index_reverse[manifold_vertex_index]; | ||||
| return BLI_BITMAP_TEST_BOOL(storage->infinite_sharp_vertices_map, | return BLI_BITMAP_TEST_BOOL(storage->infinite_sharp_vertices_map, | ||||
| vertex_index); | vertex_index); | ||||
| } | } | ||||
| static float get_vertex_sharpness(const OpenSubdiv_Converter *UNUSED(converter), | static float get_vertex_sharpness(const OpenSubdiv_Converter *converter, | ||||
| int UNUSED(manifold_vertex_index)) | int UNUSED(manifold_vertex_index)) | ||||
| { | { | ||||
| ConverterStorage *storage = converter->user_data; | |||||
| if (!storage->settings.use_creases) { | |||||
| return 0.0f; | |||||
| } | |||||
| return 0.0f; | return 0.0f; | ||||
| } | } | ||||
| static int get_num_uv_layers(const OpenSubdiv_Converter *converter) | static int get_num_uv_layers(const OpenSubdiv_Converter *converter) | ||||
| { | { | ||||
| ConverterStorage *storage = converter->user_data; | ConverterStorage *storage = converter->user_data; | ||||
| const Mesh *mesh = storage->mesh; | const Mesh *mesh = storage->mesh; | ||||
| return CustomData_number_of_layers(&mesh->ldata, CD_MLOOPUV); | return CustomData_number_of_layers(&mesh->ldata, CD_MLOOPUV); | ||||
| ▲ Show 20 Lines • Show All 218 Lines • Show Last 20 Lines | |||||