// 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 "held_ptr.hpp" using namespace boost::python; namespace PyOSGParticle { void init_ModularProgram() { class_, bases > program("ModularProgram", "A program class for performing operations on particles using a sequence of operators." "To use a ModularProgram you have to create some Operator objects and " "add them to the program." "All operators will be applied to each particle in the same order they've been added to the program.", no_init); program.def(init<>()); program.def("numOperators", &osgParticle::ModularProgram::numOperators, "Get the number of operators."); program.def("addOperator", &osgParticle::ModularProgram::addOperator, "Add an operator to the list.", with_custodian_and_ward<1,2>()); program.def("getOperator", (osgParticle::Operator *(osgParticle::ModularProgram::*)(int))&osgParticle::ModularProgram::getOperator, "Get a pointer to an operator in the list.", return_internal_reference<>()); program.def("removeOperator", &osgParticle::ModularProgram::removeOperator, "Remove an operator from the list."); } }