Changeset 359:44bd3d07db83


Ignore:
Timestamp:
04/09/10 16:40:28 (3 years ago)
Author:
ddangelo
Branch:
default
Convert:
svn:76c98907-0e80-4c83-94c7-b346fc2aefc2/trunk@365
Message:

Bool nodes written in C++. Function to merge the bool fields of two script nodes fixed. Avango node factory declaration moved from init.py to _nodes.py, in order to avoid cyclic references.

Location:
avango-utils
Files:
9 added
8 edited

Legend:

Unmodified
Added
Removed
  • avango-utils/include/avango/utils/SConscript

    r357 r359  
    2727 
    2828headers = Split(''' 
     29    Bool2Or.h 
     30    Bool2And.h 
     31    Bool3Or.h 
     32    Bool3And.h 
    2933    ProximitySensor.h 
    3034    Init.h 
  • avango-utils/python/SConscript

    r358 r359  
    3333avango_utils_python_files = Split(""" 
    3434    __init__.py 
     35    _nodes.py 
    3536    _bool_script_merge.py 
    3637    _bool_scripts.py 
  • avango-utils/python/__init__.py

    r358 r359  
    2222########################################################################## 
    2323 
     24from _nodes import * 
     25 
    2426from _utils import * 
    2527from _MFMerger import * 
     
    3133from _triggers import * 
    3234 
    33 import avango.nodefactory 
    34 nodes = avango.nodefactory.NodeFactory(module=__name__) 
     35 
  • avango-utils/python/_bool_script_merge.py

    r358 r359  
    2626        #check if the type of the field is not SFBool and  
    2727        #the merged script already does not already contain a field with the given name 
    28         if type != "SFBool" and merged_script._get_field(field1_name): 
     28        if field1_type != "SFBool" and merged_script._get_field(field1_name): 
    2929            continue  
    3030         
     
    3232        merged_script.add_field(new_field, field1_name) 
    3333 
    34         # connect new field from node's field    
     34        # connect new field from node's field 
     35        # use an OR relationship 
    3536        new_field = merged_script._get_field(field1_name)     
    36 #        new_field.connect_from(script1_field) 
    37 #        new_field.connect_from(script2_field) 
    3837        new_field.connect_from(_bool_scripts.make_bool2_or(script1_field,script2_field)) 
    3938         
  • avango-utils/python/_bool_scripts.py

    r358 r359  
     1from _nodes import * 
     2 
    13import avango 
    24import avango.script 
    3  
    4 class Bool2And(avango.script.Script): 
    5      
    6     Input1 = avango.SFBool() 
    7     Input2 = avango.SFBool() 
    8      
    9     Output = avango.SFBool() 
    10      
    11     def evaluate(self): 
    12         if self.Input1.value and self.Input2.value: 
    13             self.Output.value = True 
    14         else:  
    15             self.Output.value = False 
    16              
    17 class Bool2Or(avango.script.Script): 
    18      
    19     Input1 = avango.SFBool() 
    20     Input2 = avango.SFBool() 
    21      
    22     Output = avango.SFBool() 
    23      
    24     def evaluate(self): 
    25         if self.Input1.value or self.Input2.value: 
    26             self.Output.value = True 
    27         else:  
    28             self.Output.value = False 
    29  
    30 class Bool3And(avango.script.Script): 
    31      
    32     Input1 = avango.SFBool() 
    33     Input2 = avango.SFBool() 
    34     Input3 = avango.SFBool() 
    35      
    36     Output = avango.SFBool() 
    37      
    38     def evaluate(self): 
    39         if self.Input1.value and self.Input2.value and self.Input3.value: 
    40             self.Output.value = True 
    41         else:  
    42             self.Output.value = False 
    43              
    44 class Bool3Or(avango.script.Script): 
    45      
    46     Input1 = avango.SFBool() 
    47     Input2 = avango.SFBool() 
    48     Input3 = avango.SFBool() 
    49      
    50     Output = avango.SFBool() 
    51      
    52     def evaluate(self): 
    53         if self.Input1.value or self.Input2.value or self.Input3.value: 
    54             self.Output.value = True 
    55         else:  
    56             self.Output.value = False 
    575             
    586def make_bool2_or(input1,input2): 
    59     bool2_or = Bool2Or() 
     7    bool2_or = nodes.Bool2Or() 
    608    bool2_or.Input1.connect_from(input1) 
    619    bool2_or.Input2.connect_from(input2) 
     
    6311             
    6412def make_bool2_and(input1,input2): 
    65     bool2_and = Bool2And() 
     13    bool2_and = nodes.Bool2And() 
    6614    bool2_and.Input1.connect_from(input1) 
    6715    bool2_and.Input2.connect_from(input2) 
     
    6917 
    7018def make_bool3_and(input1,input2,input3): 
    71     bool3_and = Bool3And() 
     19    bool3_and = nodes.Bool3And() 
    7220    bool3_and.Input1.connect_from(input1) 
    7321    bool3_and.Input2.connect_from(input2) 
     
    7624 
    7725def make_bool3_or(input1,input2,input3): 
    78     bool3_and = Bool3Or() 
     26    bool3_and = nodes.Bool3Or() 
    7927    bool3_and.Input1.connect_from(input1) 
    8028    bool3_and.Input2.connect_from(input2) 
  • avango-utils/python/_utils.cpp

    r357 r359  
    2626#include "../include/avango/utils/Init.h" 
    2727 
     28#include "../include/avango/utils/Bool2Or.h" 
     29#include "../include/avango/utils/Bool2And.h" 
     30#include "../include/avango/utils/Bool3Or.h" 
     31#include "../include/avango/utils/Bool3And.h" 
     32 
    2833using namespace boost::python; 
    2934 
     
    4348{ 
    4449  av::utils::Init::initClass(); 
     50 
     51  class_<av::utils::Bool2Or, av::Link<av::utils::Bool2Or>, bases<av::FieldContainer>, boost::noncopyable >("Bool2Or", "docstring", no_init); 
     52  class_<av::utils::Bool2And, av::Link<av::utils::Bool2And>, bases<av::FieldContainer>, boost::noncopyable >("Bool2And", "docstring", no_init); 
     53  class_<av::utils::Bool3Or, av::Link<av::utils::Bool3Or>, bases<av::FieldContainer>, boost::noncopyable >("Bool3Or", "docstring", no_init); 
     54  class_<av::utils::Bool3And, av::Link<av::utils::Bool3And>, bases<av::FieldContainer>, boost::noncopyable >("Bool3And", "docstring", no_init); 
    4555} 
  • avango-utils/src/Init.cpp

    r357 r359  
    2424#include "../include/avango/utils/Init.h" 
    2525#include "../include/avango/utils/ProximitySensor.h" 
     26#include "../include/avango/utils/Bool2Or.h" 
     27#include "../include/avango/utils/Bool2And.h" 
     28#include "../include/avango/utils/Bool3Or.h" 
     29#include "../include/avango/utils/Bool3And.h" 
    2630 
    2731#include <avango/Logger.h> 
     
    4044  { 
    4145    av::utils::ProximitySensor::initClass(); 
     46    av::utils::Bool2Or::initClass(); 
     47    av::utils::Bool2And::initClass(); 
     48    av::utils::Bool3Or::initClass(); 
     49    av::utils::Bool3And::initClass(); 
    4250 
    4351    AV_TYPED_INIT_ABSTRACT(av::Type::badType(), "av::utils::Init", true); 
  • avango-utils/src/SConscript

    r357 r359  
    3131 
    3232sources = Split(''' 
     33    Bool2Or.cpp 
     34    Bool2And.cpp 
     35    Bool3Or.cpp 
     36    Bool3And.cpp 
    3337    ProximitySensor.cpp 
    3438    Init.cpp 
Note: See TracChangeset for help on using the changeset viewer.