mat4 Camera::getTranslation() { #ifndef QUATERNIONS_ON updateLocs(); #endif // QUATERNIONS_ON return LookAt(m_eye, m_at, m_up); }
vec4 Camera::getPosition() { #ifndef QUATERNIONS_ON updateLocs(); #endif // QUATERNIONS_ON return m_eye; }
void flowState::update() { getSharedData().updateCamera(dimFac); farneback.calcOpticalFlow(getSharedData().smallFrame); if(farneback.getFlow().rows > 1 && locs.size() == 0) { Mat flow = farneback.getFlow(); for(int x=0; x < flow.cols; x++) { for(int y=0; y < flow.rows; y++) { Integrator<ofVec2f> *newInt = new Integrator<ofVec2f>(); newInt->attraction = 0.3; newInt->damping = 0.5; locs.push_back(newInt); mesh.addVertex(ofVec2f(x, y)); mesh.addVertex(ofVec2f(x, y)); } } } updateLocs(); }
int call_ext_fct(ext_diff_fct *edfct, int n, double *xp, adouble *xa, int m, double *yp, adouble *ya) { int i = 0, ret; locint firstVal, numVals; double *vals; ADOLC_OPENMP_THREAD_NUMBER; ADOLC_OPENMP_GET_THREAD_NUMBER; if (edfct==NULL) fail(ADOLC_EXT_DIFF_NULLPOINTER_STRUCT); if (ADOLC_CURRENT_TAPE_INFOS.traceFlag) { put_op(ext_diff); ADOLC_PUT_LOCINT(edfct->index); ADOLC_PUT_LOCINT(n); ADOLC_PUT_LOCINT(m); ADOLC_PUT_LOCINT(xa[i].loc()); ADOLC_PUT_LOCINT(ya[i].loc()); ADOLC_PUT_LOCINT(0); /* keep space for checkpointing index */ oldTraceFlag=ADOLC_CURRENT_TAPE_INFOS.traceFlag; ADOLC_CURRENT_TAPE_INFOS.traceFlag=0; } else oldTraceFlag=0; #if defined(ADOLC_SAFE_EXTERN) firstVal = 0; #else updateLocs(); firstVal = ADOLC_GLOBAL_TAPE_VARS.locMinUnused; #endif numVals = ADOLC_GLOBAL_TAPE_VARS.numMaxAlive - firstVal; vals = new double[numVals]; memcpy(vals, ADOLC_GLOBAL_TAPE_VARS.store + firstVal, numVals * sizeof(double)); for (i=0; i<n; ++i) xp[i]=xa[i].getValue(); for (i=0; i<m; ++i) yp[i]=ya[i].getValue(); ret=edfct->function(n, xp, m, yp); memcpy(ADOLC_GLOBAL_TAPE_VARS.store + firstVal, vals, numVals * sizeof(double)); delete[] vals; /* update taylor buffer if keep != 0 ; possible double counting as in * adouble.cpp => correction in taping.c */ if (oldTraceFlag != 0) { ADOLC_CURRENT_TAPE_INFOS.numTays_Tape += n; ADOLC_CURRENT_TAPE_INFOS.numTays_Tape += m; if (ADOLC_CURRENT_TAPE_INFOS.keepTaylors) { for (i=0; i<n; ++i) ADOLC_WRITE_SCAYLOR(xa[i].getValue()); for (i=0; i<m; ++i) ADOLC_WRITE_SCAYLOR(ya[i].getValue()); } } /* write back */ for (i=0; i<n; ++i) xa[i].setValue(xp[i]); for (i=0; i<m; ++i) ya[i].setValue(yp[i]); ADOLC_CURRENT_TAPE_INFOS.traceFlag=oldTraceFlag; return ret; }