66 Copyright (c) 2009 Scientific Computing and Imaging Institute,
77 University of Utah.
88
9-
9+
1010 Permission is hereby granted, free of charge, to any person obtaining a
1111 copy of this software and associated documentation files (the "Software"),
1212 to deal in the Software without restriction, including without limitation
3131// Date : July 2006
3232
3333#include < Modules/Legacy/Visualization/GenerateStreamLines.h>
34- // #include <Core/Algorithms/Fields/StreamLines/GenerateStreamLines.h>
34+ #include < Core/Algorithms/Legacy/Fields/StreamLines/GenerateStreamLines.h>
35+ #include < Core/Datatypes/Legacy/Field/Field.h>
3536
3637using namespace SCIRun ::Modules::Visualization;
3738using namespace SCIRun ::Core::Datatypes;
3839using namespace SCIRun ::Dataflow::Networks;
3940using namespace SCIRun ::Core::Algorithms;
41+ using namespace SCIRun ::Core::Algorithms::Fields;
4042using namespace SCIRun ;
4143
42- /*
43- class GenerateStreamLines : public Module {
44- public:
45- GenerateStreamLines(GuiContext* ctx);
46- virtual ~GenerateStreamLines() {}
47-
48- virtual void execute();
49-
50- private:
51- GuiDouble gui_step_size_;
52- GuiDouble gui_tolerance_;
53- GuiInt gui_max_steps_;
54- GuiInt gui_direction_;
55- GuiInt gui_value_;
56- GuiInt gui_remove_colinear_pts_;
57- GuiInt gui_method_;
58- GuiInt gui_auto_parameterize_;
59-
60- SCIRunAlgo::GenerateStreamLinesAlgo algo_;
61- };
62- */
63-
6444const ModuleLookupInfo GenerateStreamLines::staticInfo_ (" GenerateStreamLines" , " Visualization" , " SCIRun" );
6545
6646GenerateStreamLines::GenerateStreamLines () : Module(staticInfo_)
67- /*
68- gui_step_size_(get_ctx()->subVar("stepsize"), 0.01),
69- gui_tolerance_(get_ctx()->subVar("tolerance"), 0.0001),
70- gui_max_steps_(get_ctx()->subVar("maxsteps"), 2000),
71- gui_direction_(get_ctx()->subVar("direction"), 1),
72- gui_value_(get_ctx()->subVar("value"), 1),
73- gui_remove_colinear_pts_(get_ctx()->subVar("remove-colinear-points"), 1),
74- gui_method_(get_ctx()->subVar("method"), 4),
75- gui_auto_parameterize_(get_ctx()->subVar("auto-parameterize"), false)
76- */
7747{
7848 INITIALIZE_PORT (Vector_Field);
7949 INITIALIZE_PORT (Seed_Points);
@@ -82,52 +52,50 @@ gui_step_size_(get_ctx()->subVar("stepsize"), 0.01),
8252
8353void GenerateStreamLines::setStateDefaults ()
8454{
85- // TODO
55+ auto state = get_state ();
56+ setStateIntFromAlgo (Parameters::StreamlineDirection);
57+ setStateIntFromAlgo (Parameters::StreamlineValue);
58+ setStateIntFromAlgo (Parameters::StreamlineMaxSteps);
59+ setStateDoubleFromAlgo (Parameters::StreamlineStepSize);
60+ setStateDoubleFromAlgo (Parameters::StreamlineTolerance);
61+ setStateStringFromAlgoOption (Parameters::StreamlineMethod); // 4?
62+ setStateBoolFromAlgo (Parameters::AutoParameters);
63+ setStateBoolFromAlgo (Parameters::RemoveColinearPoints);
8664}
8765
8866void GenerateStreamLines::execute ()
8967{
90- /*
91- FieldHandle input, seeds, output;
92-
93- get_input_handle( "Vector Field", input, true );
94- get_input_handle( "Seed Points", seeds, true );
95-
96-
97- if( inputs_changed_ ||
98- !oport_cached("Streamlines") ||
99- gui_tolerance_.changed( true ) ||
100- gui_step_size_.changed( true ) ||
101- gui_max_steps_.changed( true ) ||
102- gui_direction_.changed( true ) ||
103- gui_value_.changed( true ) ||
104- gui_remove_colinear_pts_.changed( true ) ||
105- gui_method_.changed( true ) ||
106- gui_auto_parameterize_.changed( true ))
68+ auto input = getRequiredInput (Vector_Field);
69+ auto seeds = getRequiredInput (Seed_Points);
70+
71+ if (needToExecute ())
10772 {
108- // Inform module that execution started
10973 update_state (Executing);
11074
111- algo_.set_scalar("tolerance",gui_tolerance_.get());
112- algo_.set_scalar("step_size",gui_step_size_.get());
113- algo_.set_int("max_steps",gui_max_steps_.get());
114- algo_.set_int("direction",gui_direction_.get());
115- algo_.set_int("value",gui_value_.get());
116- algo_.set_bool("remove_colinear_points",gui_remove_colinear_pts_.get());
75+ setAlgoDoubleFromState (Parameters::StreamlineStepSize);
76+ setAlgoDoubleFromState (Parameters::StreamlineTolerance);
77+ setAlgoIntFromState (Parameters::StreamlineDirection);
78+ setAlgoIntFromState (Parameters::StreamlineValue);
79+ setAlgoIntFromState (Parameters::StreamlineMaxSteps);
80+ setAlgoBoolFromState (Parameters::RemoveColinearPoints);
81+ setAlgoBoolFromState (Parameters::AutoParameters);
82+ setAlgoOptionFromState (Parameters::StreamlineMethod);
83+ /*
11784 int method = gui_method_.get();
11885 if (method == 0) algo_.set_option("method","AdamsBashforth");
11986 else if (method == 2) algo_.set_option("method","Heun");
12087 else if (method == 3) algo_.set_option("method","RungeKutta");
12188 else if (method == 4) algo_.set_option("method","RungeKuttaFehlberg");
12289 else if (method == 5) algo_.set_option("method","CellWalk");
123- algo_.set_bool("auto_parameters",gui_auto_parameterize_.get());
124-
125- if(!(algo_.run(input,seeds,output))) return;
90+ */
91+
92+ auto output = algo ().run_generic (withInputData ((Vector_Field, input)(Seed_Points, seeds)));
93+
94+ #ifdef NEED_ALGO_OUTPUT
12695 gui_tolerance_.set (algo_.get_scalar (" tolerance" ));
12796 gui_step_size_.set (algo_.get_scalar (" step_size" ));
128- get_ctx()->reset();
97+ # endif
12998
130- send_output_handle( " Streamlines" , output, true );
99+ sendOutputFromAlgorithm ( Streamlines, output);
131100 }
132- */
133101}
0 commit comments