Changeset View
Changeset View
Standalone View
Standalone View
intern/opensubdiv/internal/topology/topology_refiner_capi.cc
| Show First 20 Lines • Show All 188 Lines • ▼ Show 20 Lines | |||||
| const int *getFaceFVarValueIndices(const struct OpenSubdiv_TopologyRefiner *topology_refiner, | const int *getFaceFVarValueIndices(const struct OpenSubdiv_TopologyRefiner *topology_refiner, | ||||
| const int face_index, | const int face_index, | ||||
| const int channel) | const int channel) | ||||
| { | { | ||||
| const OpenSubdiv::Far::TopologyLevel &base_level = getOSDTopologyBaseLevel(topology_refiner); | const OpenSubdiv::Far::TopologyLevel &base_level = getOSDTopologyBaseLevel(topology_refiner); | ||||
| return &base_level.GetFaceFVarValues(face_index, channel)[0]; | return &base_level.GetFaceFVarValues(face_index, channel)[0]; | ||||
| } | } | ||||
| int getNumExtraVertexData(const struct OpenSubdiv_TopologyRefiner *topology_refiner) | |||||
| { | |||||
| return topology_refiner->impl->settings.num_extra_vertex_data; | |||||
| } | |||||
| //////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||||
| // Internal helpers. | // Internal helpers. | ||||
| void assignFunctionPointers(OpenSubdiv_TopologyRefiner *topology_refiner) | void assignFunctionPointers(OpenSubdiv_TopologyRefiner *topology_refiner) | ||||
| { | { | ||||
| topology_refiner->getSubdivisionLevel = getSubdivisionLevel; | topology_refiner->getSubdivisionLevel = getSubdivisionLevel; | ||||
| topology_refiner->getIsAdaptive = getIsAdaptive; | topology_refiner->getIsAdaptive = getIsAdaptive; | ||||
| // Basic topology information. | // Basic topology information. | ||||
| Show All 11 Lines | void assignFunctionPointers(OpenSubdiv_TopologyRefiner *topology_refiner) | ||||
| topology_refiner->getNumFacePtexFaces = getNumFacePtexFaces; | topology_refiner->getNumFacePtexFaces = getNumFacePtexFaces; | ||||
| topology_refiner->getNumPtexFaces = getNumPtexFaces; | topology_refiner->getNumPtexFaces = getNumPtexFaces; | ||||
| topology_refiner->fillFacePtexIndexOffset = fillFacePtexIndexOffset; | topology_refiner->fillFacePtexIndexOffset = fillFacePtexIndexOffset; | ||||
| // Face-varying data. | // Face-varying data. | ||||
| topology_refiner->getNumFVarChannels = getNumFVarChannels; | topology_refiner->getNumFVarChannels = getNumFVarChannels; | ||||
| topology_refiner->getFVarLinearInterpolation = getFVarLinearInterpolation; | topology_refiner->getFVarLinearInterpolation = getFVarLinearInterpolation; | ||||
| topology_refiner->getNumFVarValues = getNumFVarValues; | topology_refiner->getNumFVarValues = getNumFVarValues; | ||||
| topology_refiner->getFaceFVarValueIndices = getFaceFVarValueIndices; | topology_refiner->getFaceFVarValueIndices = getFaceFVarValueIndices; | ||||
| // Extra vertex data. | |||||
| topology_refiner->getNumExtraVertexData = getNumExtraVertexData; | |||||
| } | } | ||||
| OpenSubdiv_TopologyRefiner *allocateTopologyRefiner() | OpenSubdiv_TopologyRefiner *allocateTopologyRefiner() | ||||
| { | { | ||||
| OpenSubdiv_TopologyRefiner *topology_refiner = MEM_new<OpenSubdiv_TopologyRefiner>(__func__); | OpenSubdiv_TopologyRefiner *topology_refiner = MEM_new<OpenSubdiv_TopologyRefiner>(__func__); | ||||
| assignFunctionPointers(topology_refiner); | assignFunctionPointers(topology_refiner); | ||||
| return topology_refiner; | return topology_refiner; | ||||
| } | } | ||||
| Show All 31 Lines | |||||