7#ifndef OPENSUBDIV3_VTR_FVAR_REFINEMENT_H
8#define OPENSUBDIV3_VTR_FVAR_REFINEMENT_H
10#include "../version.h"
24namespace OPENSUBDIV_VERSION {
44 FVarRefinement(Refinement
const& refinement, FVarLevel& parent, FVarLevel& child);
47 int getChildValueParentSource(
Index vIndex,
int sibling)
const {
48 return _childValueParentSource[_childFVar.getVertexValueOffset(vIndex, (
LocalIndex)sibling)];
56 void applyRefinement();
58 void estimateAndAllocateChildValues();
59 void populateChildValues();
60 void populateChildValuesFromFaceVertices();
61 void populateChildValuesFromEdgeVertices();
62 int populateChildValuesForEdgeVertex(
Index cVert,
Index pEdge);
63 void populateChildValuesFromVertexVertices();
64 int populateChildValuesForVertexVertex(
Index cVert,
Index pVert);
65 void trimAndFinalizeChildValues();
67 void propagateEdgeTags();
68 void propagateValueTags();
69 void propagateValueCreases();
70 void reclassifySemisharpValues();
77 Refinement
const & _refinement;
79 Level
const & _parentLevel;
80 FVarLevel
const & _parentFVar;
82 Level
const & _childLevel;
83 FVarLevel & _childFVar;
90 std::vector<LocalIndex> _childValueParentSource;
97using namespace OPENSUBDIV_VERSION;
unsigned short LocalIndex