17
17
using namespace osg;
20
_value(StateAttribute::ON)
21
_value = StateAttribute::ON;
22
22
_stateset = new StateSet;
25
ClipNode::ClipNode(const ClipNode& cn, const CopyOp& copyop):Group(cn,copyop)
25
ClipNode::ClipNode(const ClipNode& cn, const CopyOp& copyop):
27
29
for(ClipPlaneList::const_iterator itr=cn._planes.begin();
28
30
itr!=cn._planes.end();
31
33
ClipPlane* plane = dynamic_cast<ClipPlane*>(copyop(itr->get()));
32
if (plane) addClipPlane(plane);
36
_planes.push_back(plane);
37
_stateset->setAssociatedModes(plane, _value);
41
46
void ClipNode::createClipBox(const BoundingBox& bb,unsigned int clipPlaneNumberBase)
49
if (!_stateset.valid()) _stateset = new osg::StateSet;
45
51
_planes.push_back(new ClipPlane(clipPlaneNumberBase ,1.0,0.0,0.0,-bb.xMin()));
52
_stateset->setAssociatedModes(_planes.back().get(), _value);
46
53
_planes.push_back(new ClipPlane(clipPlaneNumberBase+1,-1.0,0.0,0.0,bb.xMax()));
54
_stateset->setAssociatedModes(_planes.back().get(), _value);
48
56
_planes.push_back(new ClipPlane(clipPlaneNumberBase+2,0.0,1.0,0.0,-bb.yMin()));
57
_stateset->setAssociatedModes(_planes.back().get(), _value);
49
58
_planes.push_back(new ClipPlane(clipPlaneNumberBase+3,0.0,-1.0,0.0,bb.yMax()));
59
_stateset->setAssociatedModes(_planes.back().get(), _value);
51
61
_planes.push_back(new ClipPlane(clipPlaneNumberBase+4,0.0,0.0,1.0,-bb.zMin()));
62
_stateset->setAssociatedModes(_planes.back().get(), _value);
52
63
_planes.push_back(new ClipPlane(clipPlaneNumberBase+5,0.0,0.0,-1.0,bb.zMax()));
54
setLocalStateSetModes(_value);
64
_stateset->setAssociatedModes(_planes.back().get(), _value);
57
67
// Add a ClipPlane to a ClipNode. Return true if plane is added,
65
75
// cliplane doesn't exist in list so add it.
66
76
_planes.push_back(clipplane);
67
setLocalStateSetModes(_value);
77
if (!_stateset.valid()) _stateset = new osg::StateSet;
78
_stateset->setAssociatedModes(clipplane, _value);
123
void ClipNode::setLocalStateSetModes(const StateAttribute::GLModeValue value)
136
void ClipNode::setLocalStateSetModes(StateAttribute::GLModeValue value)
125
139
if (!_stateset) _stateset = new StateSet;
127
140
setStateSetModes(*_stateset,value);