// Copyright (C) 2002-2003 Gideon May (gideon@computer.org) // // Permission to copy, use, sell and distribute this software is granted // provided this copyright notice appears in all copies. // Permission to modify the code and to distribute modified code is granted // provided this copyright notice appears in all copies, and a notice // that the code was modified is included with the copyright notice. // // This software is provided "as is" without express or implied warranty, // and with no claim as to its suitability for any purpose. // #include #include #include #include #include "StateAttribute.hpp" #include "held_ptr.hpp" using namespace boost::python; namespace { osg::ClipPlane * asClipPlane(osg::StateAttribute * self) { return dynamic_cast(self); } void setClipPlane(osg::ClipPlane& self, tuple& plane) { self.setClipPlane(extract(plane[0]), extract(plane[1]), extract(plane[2]), extract(plane[3])); } tuple getClipPlane(osg::ClipPlane& self) { osg::Vec4d plane = self.getClipPlane(); return make_tuple(plane[0], plane[1], plane[2], plane[3]); } } // namespace namespace PyOSG { void init_ClipPlane() { register_castStateAttribute("asClipPlane", &asClipPlane); class_, bases >("ClipPlane", "ClipPlane state class which encapsulates OpenGL glClipPlane() functionality.", no_init) .def(init<>()) .def(init()) .def(init()) .def(init()) .def("setClipPlane", (void (osg::ClipPlane::*)(const osg::Vec4d&)) &osg::ClipPlane::setClipPlane) .def("setClipPlane", (void (osg::ClipPlane::*)(const osg::Plane&)) &osg::ClipPlane::setClipPlane) .def("setClipPlane", (void (osg::ClipPlane::*)(double, double, double, double)) &osg::ClipPlane::setClipPlane) .def("setClipPlane", &setClipPlane) .def("getClipPlane", &getClipPlane) .def("setClipPlaneNum", &osg::ClipPlane::setClipPlaneNum) .def("getClipPlaneNum", &osg::ClipPlane::getClipPlaneNum) ; } } // namespace PyOSG