From a4f8eb21f85326596a491b39e0330882ee8017f0 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Sun, 17 Sep 2017 20:09:51 +0000
Subject: [PATCH] Added wrapper to libtrisurf

---
 trisurf/analyses.py |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/trisurf/analyses.py b/trisurf/analyses.py
index 9a063d7..1569eb9 100644
--- a/trisurf/analyses.py
+++ b/trisurf/analyses.py
@@ -1,6 +1,22 @@
 from . import trisurf
 
 
+def analysis(*args):
+	"""Decorator for adding the analysis functions to function lists"""
+	def analysis_decorator(analysis_function):
+		trisurf._analysis_list[analysis_name]=analysis_function
+		def wrapper(*args, **kwargs):
+			analysis_function(*args,**kwargs)
+		return wrapper
+	if len(args) == 1 and callable(args[0]): #no arguments
+		analysis_name=args[0].__name__
+		return analysis_decorator(args[0])
+	else:
+		analysis_name=args[0]
+		return analysis_decorator
+
+
+@analysis
 def demo(run, **kwargs):
 	host=kwargs.get('host', None)
 	print("Demo analysis")
@@ -13,12 +29,14 @@
 	print(kwargs.get('args',None))
 
 
-def plotrunningavginteractive(run, **kwargs):
+# can be wrapped to specify scalar_field)
+@analysis('plotrunningavginteractive')
+def plotrunningavginteractive(run, scalar_field='vertices_idx', **kwargs):
 	import matplotlib.pyplot as plt
 	from trisurf import VTKRendering as vtk
 	import math
 	from multiprocessing import Process
-	table=trisurf.Statistics(run.Dir.fullpath(),filename='data_tspoststat.csv').getTable()
+	table=trisurf.Statistics(run.Dir.fullpath(),filename='poststat.csv').getTable()
 	def running_avg(col):
 		import numpy as np
 		avg=[]	
@@ -26,7 +44,7 @@
 			avg.append(np.average(col[:-i]))
 		return avg
 	def spawned_viewer(n):
-		vtk.Renderer(kwargs.get('args', None),kwargs.get('host',None),run, n)
+		vtk.Renderer(kwargs.get('args', None),kwargs.get('host',None),run, timestep=n,scalar_field=scalar_field)
 
 	fig=plt.figure(1)
 	ra=running_avg(table['hbar'])
@@ -47,8 +65,8 @@
 # -------------------------------
 # these functions should be wrapped
 # -------------------------------
-
-def plotColumnFromPostProcess(run, filename='data_tspoststat.csv', column='hbar', **kwargs):
+@analysis('plotColumnFromPostProcess')
+def plotColumnFromPostProcess(run, filename='poststat.csv', column='hbar', **kwargs):
 	import matplotlib.pyplot as plt
 
 	def smooth(y, box_pts):

--
Gitblit v1.9.3