Skip to content
Snippets Groups Projects
Commit e7075aa3 authored by Florent Lamiraux's avatar Florent Lamiraux Committed by Florent Lamiraux florent@laas.fr
Browse files

Revert "Modify SignalBase.value."

    This reverts commit b055ba73.
    This commits seems to have side effects. Revert it temporarily.
parent b055ba73
No related branches found
No related tags found
No related merge requests found
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
#include <sstream> #include <sstream>
#include <dynamic-graph/signal-base.h> #include <dynamic-graph/signal-base.h>
#include <dynamic-graph/signal-ptr.h>
#include <dynamic-graph/signal.h> #include <dynamic-graph/signal.h>
#include <dynamic-graph/signal-caster.h> #include <dynamic-graph/signal-caster.h>
#include <dynamic-graph/linear-algebra.h> #include <dynamic-graph/linear-algebra.h>
...@@ -155,61 +154,20 @@ namespace dynamicgraph { ...@@ -155,61 +154,20 @@ namespace dynamicgraph {
pointer = PyCObject_AsVoidPtr(object); pointer = PyCObject_AsVoidPtr(object);
SignalBase<int>* signal = (SignalBase<int>*)pointer; SignalBase<int>* signal = (SignalBase<int>*)pointer;
{ // --- VECTOR SIGNALS ----------------- /* Temptative for specific signal type. */
// Two cases: the signal embeds directly a vector, or embeds Signal<dynamicgraph::Vector,int> * sigvec
// an object deriving from vector.In the first case, = dynamic_cast< Signal<dynamicgraph::Vector,int>* >( signal );
// the signal is directly cast into sig<vector>. if( NULL!= sigvec )
// In the second case, the derived object can be access as a vector {
// using the signal-ptr<vector> type. return vectorToPython( sigvec->accessCopy() );
Signal<dynamicgraph::Vector,int> * sigvec }
= dynamic_cast< Signal<dynamicgraph::Vector,int>* >( signal );
if( NULL!= sigvec )
{
return vectorToPython( sigvec->accessCopy() );
}
// Extraction of object derinving from vector: plug signal into
// a vector signal and get the value from the signal-ptr instead
// of the original vector.
SignalPtr<dynamicgraph::Vector,int> sigptr(NULL,"vector-caster");
try
{
sigptr.plug(signal);
return vectorToPython( sigptr.accessCopy() );
}
catch( dynamicgraph::ExceptionSignal& ex )
{
if( ex.getCode() != dynamicgraph::ExceptionSignal::PLUG_IMPOSSIBLE )
throw;
}
}
{ // --- MATRIX SIGNALS --------------------
// Two cases: the signal embeds directly a matrix, or embeds
// an object deriving from matrix.In the first case,
// the signal is directly cast into sig<matrix>.
// In the second case, the derived object can be access as a matrix
// using the signal-ptr<matrix> type.
Signal<dynamicgraph::Matrix,int> * sigmat
= dynamic_cast< Signal<dynamicgraph::Matrix,int>* >( signal );
if( NULL!= sigmat )
{
return matrixToPython( sigmat->accessCopy() );
}
SignalPtr<dynamicgraph::Matrix,int> sigptr(NULL,"matrix-caster");
try
{
sigptr.plug(signal);
return matrixToPython( sigptr.accessCopy() );
}
catch( dynamicgraph::ExceptionSignal& ex )
{
if( ex.getCode() != dynamicgraph::ExceptionSignal::PLUG_IMPOSSIBLE )
throw;
}
}
Signal<dynamicgraph::Matrix,int> * sigmat
= dynamic_cast< Signal<dynamicgraph::Matrix,int>* >( signal );
if( NULL!= sigmat )
{
return matrixToPython( sigmat->accessCopy() );
}
Signal<double,int> * sigdouble Signal<double,int> * sigdouble
= dynamic_cast< Signal<double,int>* >( signal ); = dynamic_cast< Signal<double,int>* >( signal );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment