From 0ed7a8b68dd73e2b0473b8127aeca99f3bac9061 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Wed, 1 Apr 2009 21:13:09 +0000 Subject: cleaned up grill externals - replaced with svn:externals to svn.grrrr.org/ext/trunk/ svn path=/trunk/; revision=10951 --- externals/grill/vasp/source/env.cpp | 153 ------------------------------------ 1 file changed, 153 deletions(-) delete mode 100644 externals/grill/vasp/source/env.cpp (limited to 'externals/grill/vasp/source/env.cpp') diff --git a/externals/grill/vasp/source/env.cpp b/externals/grill/vasp/source/env.cpp deleted file mode 100644 index 2f0fb58b..00000000 --- a/externals/grill/vasp/source/env.cpp +++ /dev/null @@ -1,153 +0,0 @@ -/* - -VASP modular - vector assembling signal processor / objects for Max/MSP and PD - -Copyright (c) 2002 Thomas Grill (xovo@gmx.net) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. - -*/ - -#include "main.h" -#include "env.h" -#include "classes.h" -#include "util.h" - -Env::Env(I argc,const t_atom *argv) -{ - I ix = 0; - t_symbol *v = ix < argc?flext::GetASymbol(argv[ix]):NULL; - if(v && v == vasp_base::sym_env) ix++; // if it is "env" ignore it - - cnt = (argc-ix)/2; - pos = new R[cnt]; - val = new R[cnt]; - - R prev = -BIG; - BL ok = true; - for(I i = 0; i < cnt; ++i) { - val[i] = flext::GetAFloat(argv[ix++]); - pos[i] = flext::GetAFloat(argv[ix++]); - if(pos[i] < prev) ok = false; - prev = pos[i]; - } - - if(ix < argc) { - post("vasp - env pos/value pairs incomplete, omitted dangling value"); - } - - if(!ok) Clear(); -} - -/* -Env::Env(const Env &s): - cnt(s.cnt),pos(new R[s.cnt]),val(new R[s.cnt]) -{ - for(I i = 0; i < cnt; ++i) pos[i] = s.pos[i],val[i] = s.val[i]; -} -*/ - -Env::~Env() { Clear(); } - - -BL Env::ChkArgs(I argc,const t_atom *argv) -{ - I ix = 0; - - // vasp keyword - t_symbol *v = ix < argc?flext::GetASymbol(argv[ix]):NULL; - if(v && v == vasp_base::sym_env) ix++; // if it is "env" ignore it - - while(argc > ix) { - // check for value - if(flext::CanbeFloat(argv[ix])) ix++; - else - return false; - - // check for position - if(argc > ix) - if(flext::CanbeFloat(argv[ix])) ix++; - else - return false; - } - - return true; -} - -V Env::MakeList(flext::AtomList &ret) const -{ - ret(cnt*2+1); - flext::SetSymbol(ret[0],vasp_base::sym_env); - for(I i = 0; i < cnt; ++i) { - flext::SetFloat(ret[i*2+1],val[i]); - flext::SetFloat(ret[i*2+2],pos[i]); - } -} - -V Env::Clear() -{ - cnt = 0; - if(pos) delete[] pos; pos = NULL; - if(val) delete[] val; val = NULL; -} - - -Env::Iter::Iter(const Env &bpl): bp(bpl),ppt(-BIG),npt(BIG),pvl(0),k(0) {} - -V Env::Iter::Init(R p) -{ - I cnt = bp.Count(); - FLEXT_ASSERT(cnt > 0); - - if(p < bp.Pos(0)) { - // position is before the head - ix = -1; - ppt = -BIG; pvl = bp.Val(0); - } - else if(p > bp.Pos(cnt-1)) { - // position is after the tail - ix = cnt-1; - ppt = bp.Pos(ix); pvl = bp.Val(ix); - } - else { - // somewhere in the list - for(ix = 0; ix < cnt; ++ix) - if(p >= bp.Pos(ix)) break; - ppt = bp.Pos(ix); pvl = bp.Val(ix); - - FLEXT_ASSERT(ix < cnt); - } - - if(ix >= cnt) { - npt = BIG; nvl = pvl; - k = 0; - } - else { - npt = bp.Pos(ix+1); nvl = bp.Val(ix+1); - k = (nvl-pvl)/(npt-ppt); - } -} - -// \todo iteration first, then calculation of k -V Env::Iter::UpdateFwd(R p) -{ - do { - ppt = npt,pvl = nvl; - if(++ix >= bp.Count()-1) npt = BIG,k = 0; - else { - k = ((nvl = bp.Val(ix+1))-pvl)/((npt = bp.Pos(ix+1))-ppt); - } - } while(p > npt); -} - -// \todo iteration first, then calculation of k -V Env::Iter::UpdateBwd(R p) -{ - do { - npt = ppt,nvl = pvl; - if(--ix < 0) ppt = -BIG,k = 0; - else { - k = (nvl-(pvl = bp.Val(ix)))/(npt-(ppt = bp.Pos(ix))); - } - } while(p < ppt); -} -- cgit v1.2.1