// 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 #include #include #include "StateAttribute.hpp" #include "held_ptr.hpp" using namespace boost::python; namespace { osg::LightModel * asLightModel(osg::StateAttribute * self) { return dynamic_cast(self); } } namespace PyOSG { void init_LightModel() { register_castStateAttribute("asLightModel", &asLightModel); class_, bases > lightModel("LightModel", no_init); scope osg_lightModel(lightModel); lightModel .def(init<>()) .def("setAmbientIntensity", &osg::LightModel::setAmbientIntensity) .def("getAmbientIntensity", &osg::LightModel::getAmbientIntensity, return_value_policy()) .def("setColorControl", &osg::LightModel::setColorControl) .def("getColorControl", &osg::LightModel::getColorControl) .def("setLocalViewer", &osg::LightModel::setLocalViewer) .def("getLocalViewer", &osg::LightModel::getLocalViewer) .def("setTwoSided", &osg::LightModel::setTwoSided) .def("getTwoSided", &osg::LightModel::getTwoSided) ; # define OSG_ENUM_CC(VALUE) \ (cc.value(#VALUE, osg::LightModel::VALUE), \ lightModel.def(#VALUE, object(osg::LightModel::VALUE))) enum_ cc("ColorControl"); OSG_ENUM_CC(SEPARATE_SPECULAR_COLOR); OSG_ENUM_CC(SINGLE_COLOR); scope(); } } // namespace PyOSG