7#ifndef OPENSUBDIV3_VTR_SPARSE_SELECTOR_H
8#define OPENSUBDIV3_VTR_SPARSE_SELECTOR_H
10#include "../version.h"
18namespace OPENSUBDIV_VERSION {
43 SparseSelector(Refinement& refine) : _refine(&refine), _selected(false) { }
46 void setRefinement(Refinement& refine) { _refine = &refine; }
47 Refinement& getRefinement()
const {
return *_refine; }
49 bool isSelectionEmpty()
const {
return !_selected; }
55 void selectVertex(
Index pVertex);
56 void selectEdge(
Index pEdge);
57 void selectFace(
Index pFace);
60 SparseSelector() : _refine(0), _selected(false) { }
62 bool wasVertexSelected(
Index pVertex)
const {
return _refine->getParentVertexSparseTag(pVertex)._selected; }
63 bool wasEdgeSelected(
Index pEdge)
const {
return _refine->getParentEdgeSparseTag(pEdge)._selected; }
64 bool wasFaceSelected(
Index pFace)
const {
return _refine->getParentFaceSparseTag(pFace)._selected; }
66 void markVertexSelected(
Index pVertex)
const { _refine->getParentVertexSparseTag(pVertex)._selected =
true; }
67 void markEdgeSelected(
Index pEdge)
const { _refine->getParentEdgeSparseTag(pEdge)._selected =
true; }
68 void markFaceSelected(
Index pFace)
const { _refine->getParentFaceSparseTag(pFace)._selected =
true; }
70 void initializeSelection();
81using namespace OPENSUBDIV_VERSION;