[brlcad-commits] SF.net SVN: brlcad:[32177] brlcad/trunk/src/libpc
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <hom...@us...> - 2008-07-31 23:45:23
|
Revision: 32177 http://brlcad.svn.sourceforge.net/brlcad/?rev=32177&view=rev Author: homovulgaris Date: 2008-07-31 23:45:32 +0000 (Thu, 31 Jul 2008) Log Message: ----------- modification to addVariable() and pushVar() functions of PCSet. small *hack* in pushVar() since default specialized constructors are not being used Modified Paths: -------------- brlcad/trunk/src/libpc/pcPCSet.cpp brlcad/trunk/src/libpc/pcPCSet.h brlcad/trunk/src/libpc/solver_test.cpp Modified: brlcad/trunk/src/libpc/pcPCSet.cpp =================================================================== --- brlcad/trunk/src/libpc/pcPCSet.cpp 2008-07-31 23:42:47 UTC (rev 32176) +++ brlcad/trunk/src/libpc/pcPCSet.cpp 2008-07-31 23:45:32 UTC (rev 32177) @@ -61,7 +61,10 @@ void PCSet::pushVar() { Variable<double> *v = new Variable<double>(name,value); + v->addInterval(Interval<double>( -std::numeric_limits<double>::max(), std::numeric_limits<double>::max(), 0.00001)); Vars.push_back(v); + /*addVariable<double>(name, value);*/ + name.clear(); } void PCSet::addConstraint(Constraint * c) Modified: brlcad/trunk/src/libpc/pcPCSet.h =================================================================== --- brlcad/trunk/src/libpc/pcPCSet.h 2008-07-31 23:42:47 UTC (rev 32176) +++ brlcad/trunk/src/libpc/pcPCSet.h 2008-07-31 23:45:32 UTC (rev 32177) @@ -61,7 +61,9 @@ /** Element addition methods */ void pushVar(); template<typename T> - void addVariable(std::string vid , T vvalue,T vlow, T vhigh, T vstep); + void addVariable(std::string vid, T vvalue); + template<typename T> + void addVariable(std::string vid, T vvalue, T vlow, T vhigh, T vstep); void addConstraint(Constraint * c); VariableAbstract * getVariablebyID(std::string vid); @@ -69,11 +71,17 @@ }; template<typename T> +void PCSet::addVariable(std::string vid, T vvalue) +{ + Variable<T> *v = new Variable<T>(vid,vvalue); + Vars.push_back(v); +} + +template<typename T> void PCSet::addVariable(std::string vid, T vvalue, T vlow, T vhigh, T vstep) { Variable<T> *v = new Variable<T>(vid,vvalue); - v->addInterval(Interval<T>(vlow,vhigh,vstep)); - //v->intersectInterval(Interval<T>(vlow,vhigh,vstep)); + v->intersectInterval(Interval<T>(vlow,vhigh,vstep)); Vars.push_back(v); } #endif Modified: brlcad/trunk/src/libpc/solver_test.cpp =================================================================== --- brlcad/trunk/src/libpc/solver_test.cpp 2008-07-31 23:42:47 UTC (rev 32176) +++ brlcad/trunk/src/libpc/solver_test.cpp 2008-07-31 23:45:32 UTC (rev 32177) @@ -87,33 +87,15 @@ // Convenient naming for the vertices and Corrsponding Variables typedef Variable<int> Vi; - mypcset.addVariable("A",(int)1, (int)0, (int) 5,(int) 1); - /*mypcset.addVariable("B",double (2.4) ,double (-3.3) ,double (10.7), double (0.2) );*/ + //test with template specification + mypcset.addVariable<int>("A", 1, 0, 5, 1); + mypcset.addVariable<double>("B", 2.4, -3.3, 10.7, 0.2); + + //test without template specification + mypcset.addVariable("C", 2, 0, 10, 1); + mypcset.addVariable("D", 4, -20, 30, 1); mypcset.display(); - - Vi A=Vi("A", 1); - Vi B=Vi("B", 2); - Vi C=Vi("C", 3); - Vi D=Vi("D", 4); - Vi E=Vi("E", 6); - - Interval<int> I; - I.assign(0, 5, 1); - A.addInterval(I); - B.addInterval(I); - C.addInterval(I); - D.addInterval(I); - E.addInterval(-16, -10, 1); - E.addInterval(-6, -4, 1); - E.addInterval(0, 7, 1); - E.addInterval(8, 10, 1); - E.addInterval(16, 18, 1); - E.addInterval(32, 46, 1); - E.addInterval(64, 68, 1); - std::cout<< std::endl << "Testing Interval Intersection" << std::endl; - E.display(); - E.intersectInterval(Interval<int>(3,40,1)); - E.display(); +#if 0 typedef Constraint Ci; Ci constraint_array[4] = { Ci(mypcset,"0", "A*B=12",f1,2,"A","B"), Ci(mypcset,"1", "B+C<5",f2,2,"B","C"), Ci(mypcset,"2", "A-D=2",f3,2,"A","D"), Ci(mypcset,"3", "A*C=4",f4,2,"A","C") }; @@ -151,7 +133,7 @@ std::cout << "Number of Constraint checks performed" << std::endl; std::cout << "Generate-Test Solution:" << GTS.numChecks() << std::endl; std::cout << "BackTracking based Solution:" << BTS.numChecks() << std::endl; - +#endif return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |