// 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 "StateAttribute.hpp" #include "held_ptr.hpp" using namespace boost::python; namespace { osg::TexEnv * asTexEnv(osg::StateAttribute * self) { return dynamic_cast(self); } } namespace PyOSG { void init_TexEnv() { register_castStateAttribute("asTexEnv", &asTexEnv); class_, bases > texenv("TexEnv", "TexEnv - encapsulates the OpenGL glTexEnv (texture environment) state.", no_init); scope texenv_scope(texenv); texenv .def(init<>()) .def("setMode", &osg::TexEnv::setMode) .def("getMode", &osg::TexEnv::getMode) .def("setColor", &osg::TexEnv::setColor) .def("getColor", (osg::Vec4&(osg::TexEnv::*)()) &osg::TexEnv::getColor, return_internal_reference<>()) ; # define OSG_ENUM_MODE(VALUE) \ (mode.value(#VALUE, osg::TexEnv::VALUE), \ texenv.def(#VALUE, object(osg::TexEnv::VALUE))) enum_ mode("Mode"); OSG_ENUM_MODE(DECAL); OSG_ENUM_MODE(MODULATE); OSG_ENUM_MODE(BLEND); OSG_ENUM_MODE(REPLACE); OSG_ENUM_MODE(ADD); } } // namespace PyOSG