diff options
Diffstat (limited to 'source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c')
-rw-r--r-- | source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c b/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c index eb7c3bf6ffd..fcc46308efa 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c +++ b/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c @@ -308,6 +308,31 @@ void ccgSubSurf_drawGLMesh(CCGSubSurf *ss, bool fill_quads, } } +int ccgSubSurf_getNumGLMeshBaseFaces(CCGSubSurf *ss) +{ + const OpenSubdiv_TopologyRefinerDescr *topology_refiner; + if (ss->osd_topology_refiner != NULL) { + topology_refiner = ss->osd_topology_refiner; + } + else { + topology_refiner = openSubdiv_getGLMeshTopologyRefiner(ss->osd_mesh); + } + return openSubdiv_topologyRefinerGetNumFaces(topology_refiner); +} + +/* Get number of vertices in base faces in a particular GL mesh. */ +int ccgSubSurf_getNumGLMeshBaseFaceVerts(CCGSubSurf *ss, int face) +{ + const OpenSubdiv_TopologyRefinerDescr *topology_refiner; + if (ss->osd_topology_refiner != NULL) { + topology_refiner = ss->osd_topology_refiner; + } + else { + topology_refiner = openSubdiv_getGLMeshTopologyRefiner(ss->osd_mesh); + } + return openSubdiv_topologyRefinerGetNumFaceVerts(topology_refiner, face); +} + void ccgSubSurf_setSkipGrids(CCGSubSurf *ss, bool skip_grids) { ss->skip_grids = skip_grids; |