\hypertarget{classThreeBRunner}{
\subsection{ThreeBRunner Class Reference}
\label{classThreeBRunner}\index{ThreeBRunner@{ThreeBRunner}}
}


This class deals with running the actual 3B code It should be run in a separate thread It will make calls back to a viewer, and accepts termination calls as well.  


\subsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classThreeBRunner_a37ff34399d1dbfdc30a73a70c8af1284}{register} (\hyperlink{classEControlPanel}{EControlPanel} c)
\item 
void \hyperlink{classThreeBRunner_a00d90419d87e98c0a8754386bb02796c}{run} ()
\end{DoxyCompactItemize}
\subsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static void \hyperlink{classThreeBRunner_af54d4f5b5f9ed82c59a1d23fe1c0713d}{addLibraryPath} (String pathToAdd)  throws Exception
\end{DoxyCompactItemize}
\subsubsection*{Package Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classThreeBRunner_afc67fa96dd8119a670960f5b3159d2cb}{ThreeBRunner} (ByteProcessor mask\_\-, ImageStack s, String cfg\_\-, String filename\_\-, int firstfr, int lastfr)
\item 
void \hyperlink{classThreeBRunner_ace81ac541cd6ef00cf9c4ec840e40967}{stop\_\-thread} ()
\item 
boolean \hyperlink{classThreeBRunner_ae4a3db5c5639a7056f73231af7164959}{has\_\-stopped} ()
\item 
void \hyperlink{classThreeBRunner_ad9d40a4d471a6c86b2c2eee91844de16}{send\_\-message\_\-string} (String s)
\item 
void \hyperlink{classThreeBRunner_a727e25158ae37057f773ca3f133a38bb}{send\_\-new\_\-points} (float\mbox{[}$\,$\mbox{]} points)
\item 
void \hyperlink{classThreeBRunner_a0fdb4aeefb7e0b4ee105c67582312145}{die} (String err)
\item 
boolean \hyperlink{classThreeBRunner_a717e1f3b30fdcf5fc45f514d85ddb2b7}{should\_\-stop} ()
\item 
native void \hyperlink{classThreeBRunner_a964e4bac60cc9c5f9f3c81c86b72f3d8}{call} (String cfg, float\mbox{[}$\,$\mbox{]}\mbox{[}$\,$\mbox{]} images, byte\mbox{[}$\,$\mbox{]} \hyperlink{classThreeBRunner_a991a6ef449443de1a76a8247bcf92495}{mask}, int n\_\-images, int rows, int cols, String file)
\end{DoxyCompactItemize}
\subsubsection*{Static Package Functions}
\begin{DoxyCompactItemize}
\item 
static String \hyperlink{classThreeBRunner_a59f4777589db3180aa2072f032f5ccc0}{get\_\-plugin\_\-dir} ()
\item 
static UnsatisfiedLinkError \hyperlink{classThreeBRunner_a3720e36b8c74679fbff3937946de0f1a}{try\_\-to\_\-load\_\-dlls} (String\mbox{[}$\,$\mbox{]} s)
\item 
\hyperlink{classThreeBRunner_a7840409d23d7a0c17a1fe012eaca6f98}{\mbox{[}static initializer\mbox{]}}
\end{DoxyCompactItemize}
\subsubsection*{Package Attributes}
\begin{DoxyCompactItemize}
\item 
ByteProcessor \hyperlink{classThreeBRunner_a991a6ef449443de1a76a8247bcf92495}{mask}
\item 
float\mbox{[}$\,$\mbox{]}\mbox{[}$\,$\mbox{]} \hyperlink{classThreeBRunner_a37aceec1d27fdeb42106aa95319d995a}{pixels}
\item 
\hyperlink{classEControlPanel}{EControlPanel} \hyperlink{classThreeBRunner_a7edcbe35a2d5846ffe569caf1d6bcbcb}{cp}
\item 
String \hyperlink{classThreeBRunner_a19225e2af36c88473c38d84f2d3def0c}{config}
\item 
String \hyperlink{classThreeBRunner_a187f571b60ae9c92599de9abdb8f8b1b}{filename}
\item 
long \hyperlink{classThreeBRunner_a7f7ab8f5c386ced2dde67101cfdf903c}{start\_\-time}
\item 
int \hyperlink{classThreeBRunner_acf96d4453cb681b44dfda8e288a9974b}{its}
\end{DoxyCompactItemize}
\subsubsection*{Static Private Member Functions}
\begin{DoxyCompactItemize}
\item 
static String \hyperlink{classThreeBRunner_aab49b46c3c8b50523668be8a7cfa5553}{decodePercent} (String str)
\end{DoxyCompactItemize}
\subsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
volatile boolean \hyperlink{classThreeBRunner_a3fa23dfb170bf38c94025f0bae171d15}{stop} = false
\item 
volatile boolean \hyperlink{classThreeBRunner_acc637ab3d5eb058c404338cbdea1dcaf}{stopped} = false
\item 
boolean \hyperlink{classThreeBRunner_a3032c8c4d54e3409ebe73aff4667c7af}{fatal} = false
\end{DoxyCompactItemize}


\subsubsection{Detailed Description}
This class deals with running the actual 3B code It should be run in a separate thread It will make calls back to a viewer, and accepts termination calls as well. 

Definition at line 1283 of file three\_\-B.java.



\subsubsection{Constructor \& Destructor Documentation}
\hypertarget{classThreeBRunner_afc67fa96dd8119a670960f5b3159d2cb}{
\index{ThreeBRunner@{ThreeBRunner}!ThreeBRunner@{ThreeBRunner}}
\index{ThreeBRunner@{ThreeBRunner}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{ThreeBRunner}]{\setlength{\rightskip}{0pt plus 5cm}ThreeBRunner::ThreeBRunner (
\begin{DoxyParamCaption}
\item[{ByteProcessor}]{mask\_\-, }
\item[{ImageStack}]{s, }
\item[{String}]{cfg\_\-, }
\item[{String}]{filename\_\-, }
\item[{int}]{firstfr, }
\item[{int}]{lastfr}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, package\mbox{]}}}}
\label{classThreeBRunner_afc67fa96dd8119a670960f5b3159d2cb}


Definition at line 1296 of file three\_\-B.java.



References config, filename, mask, and pixels.


\begin{DoxyCode}
    {
        config = cfg_;
        filename = filename_;
        
        //Take a copy of the mask to stop it getting trashed by other threads
        mask = (ByteProcessor)mask_.duplicate();
        
        //Convert all the input images into float as a common
        //format. They will be scaled differently from float images 
        //loaded by libcvd, but the later normalization will take care of that
        //
        //Oh, and ImageStack counts from 1, not 0
        pixels = new float[lastfr - firstfr + 1][];
        for(int i=firstfr; i <= lastfr; i++)
            pixels[i-firstfr] = (float[])s.getProcessor(i+1).convertToFloat().get
      Pixels();
    }
\end{DoxyCode}


\subsubsection{Member Function Documentation}
\hypertarget{classThreeBRunner_a37ff34399d1dbfdc30a73a70c8af1284}{
\index{ThreeBRunner@{ThreeBRunner}!register@{register}}
\index{register@{register}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{register}]{\setlength{\rightskip}{0pt plus 5cm}void ThreeBRunner::register (
\begin{DoxyParamCaption}
\item[{{\bf EControlPanel}}]{c}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classThreeBRunner_a37ff34399d1dbfdc30a73a70c8af1284}


Definition at line 1314 of file three\_\-B.java.



References cp.



Referenced by EControlPanel::EControlPanel().


\begin{DoxyCode}
    {
        cp = c;
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_ace81ac541cd6ef00cf9c4ec840e40967}{
\index{ThreeBRunner@{ThreeBRunner}!stop\_\-thread@{stop\_\-thread}}
\index{stop\_\-thread@{stop\_\-thread}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{stop\_\-thread}]{\setlength{\rightskip}{0pt plus 5cm}void ThreeBRunner::stop\_\-thread (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, package\mbox{]}}}}
\label{classThreeBRunner_ace81ac541cd6ef00cf9c4ec840e40967}


Definition at line 1319 of file three\_\-B.java.



References send\_\-message\_\-string(), and stop.



Referenced by EControlPanel::issue\_\-stop(), and EControlPanel::windowClosing().


\begin{DoxyCode}
    {
        stop=true;
        send_message_string("stopping...");
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_ae4a3db5c5639a7056f73231af7164959}{
\index{ThreeBRunner@{ThreeBRunner}!has\_\-stopped@{has\_\-stopped}}
\index{has\_\-stopped@{has\_\-stopped}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{has\_\-stopped}]{\setlength{\rightskip}{0pt plus 5cm}boolean ThreeBRunner::has\_\-stopped (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, package\mbox{]}}}}
\label{classThreeBRunner_ae4a3db5c5639a7056f73231af7164959}


Definition at line 1325 of file three\_\-B.java.



References stopped.



Referenced by EControlPanel::windowClosing().


\begin{DoxyCode}
    {
        return stopped;
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_ad9d40a4d471a6c86b2c2eee91844de16}{
\index{ThreeBRunner@{ThreeBRunner}!send\_\-message\_\-string@{send\_\-message\_\-string}}
\index{send\_\-message\_\-string@{send\_\-message\_\-string}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{send\_\-message\_\-string}]{\setlength{\rightskip}{0pt plus 5cm}void ThreeBRunner::send\_\-message\_\-string (
\begin{DoxyParamCaption}
\item[{String}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, package\mbox{]}}}}
\label{classThreeBRunner_ad9d40a4d471a6c86b2c2eee91844de16}


Definition at line 1332 of file three\_\-B.java.



References cp, and EControlPanel::send\_\-status\_\-text\_\-message().



Referenced by stop\_\-thread().


\begin{DoxyCode}
    {
        cp.send_status_text_message(s);
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_a727e25158ae37057f773ca3f133a38bb}{
\index{ThreeBRunner@{ThreeBRunner}!send\_\-new\_\-points@{send\_\-new\_\-points}}
\index{send\_\-new\_\-points@{send\_\-new\_\-points}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{send\_\-new\_\-points}]{\setlength{\rightskip}{0pt plus 5cm}void ThreeBRunner::send\_\-new\_\-points (
\begin{DoxyParamCaption}
\item[{float\mbox{[}$\,$\mbox{]}}]{points}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, package\mbox{]}}}}
\label{classThreeBRunner_a727e25158ae37057f773ca3f133a38bb}


Definition at line 1337 of file three\_\-B.java.



References EControlPanel::append(), cp, ThreeBGlobalConstants::critical\_\-iterations, its, EControlPanel::send\_\-time\_\-text\_\-message(), EControlPanel::send\_\-update\_\-canvas\_\-event(), start\_\-time, Spot::x, and Spot::y.


\begin{DoxyCode}
    {
        //New points are sent in the form x, y, x, y
        ArrayList<Spot> tmp = new ArrayList<Spot>();
        for(int i=0; i < points.length; i+=2)
        {
            Spot s = new Spot();
            s.x = points[i];
            s.y = points[i+1];
            tmp.add(s);
        }

        cp.append(tmp, its);
        cp.send_update_canvas_event();
            
        //This happens each "iteration", i.e. each pass.
        long current = (new java.util.Date()).getTime();

        if(its > 0)
        {
            if(its < 8)
                cp.send_time_text_message("computing...");
            else
            {
                long time_per_it = (current -start_time) / its;
                int target = (int)Math.ceil(its * 1.0 / ThreeBGlobalConstants.
      critical_iterations) * ThreeBGlobalConstants.critical_iterations;
                int its_remaining = target-its;

                System.out.println("Its = " + its);
                System.out.println("rem = " + its_remaining);
                System.out.println("time_per_it = " + time_per_it);

                
                long time_remaining_s = (its_remaining * time_per_it)/1000;
                
                long s = time_remaining_s % 60;
                long m = (time_remaining_s / 60)%60;
                long h = time_remaining_s / 3600;

                cp.send_time_text_message( h + "h" + m + "m (for " + target + " i
      terations)");
            }
            
        }
        
        //Increment after, since it outputs the initial spots as well
        its++;
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_a0fdb4aeefb7e0b4ee105c67582312145}{
\index{ThreeBRunner@{ThreeBRunner}!die@{die}}
\index{die@{die}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{die}]{\setlength{\rightskip}{0pt plus 5cm}void ThreeBRunner::die (
\begin{DoxyParamCaption}
\item[{String}]{err}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, package\mbox{]}}}}
\label{classThreeBRunner_a0fdb4aeefb7e0b4ee105c67582312145}


Definition at line 1385 of file three\_\-B.java.



References cp, EControlPanel::die(), and fatal.


\begin{DoxyCode}
    {
        cp.die(err);
        fatal=true;
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_a717e1f3b30fdcf5fc45f514d85ddb2b7}{
\index{ThreeBRunner@{ThreeBRunner}!should\_\-stop@{should\_\-stop}}
\index{should\_\-stop@{should\_\-stop}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{should\_\-stop}]{\setlength{\rightskip}{0pt plus 5cm}boolean ThreeBRunner::should\_\-stop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, package\mbox{]}}}}
\label{classThreeBRunner_a717e1f3b30fdcf5fc45f514d85ddb2b7}


Definition at line 1391 of file three\_\-B.java.



References stop.


\begin{DoxyCode}
    {
        return stop;
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_a964e4bac60cc9c5f9f3c81c86b72f3d8}{
\index{ThreeBRunner@{ThreeBRunner}!call@{call}}
\index{call@{call}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{call}]{\setlength{\rightskip}{0pt plus 5cm}native void ThreeBRunner::call (
\begin{DoxyParamCaption}
\item[{String}]{cfg, }
\item[{float}]{images\mbox{[}$\,$\mbox{]}\mbox{[}$\,$\mbox{]}, }
\item[{byte\mbox{[}$\,$\mbox{]}}]{mask, }
\item[{int}]{n\_\-images, }
\item[{int}]{rows, }
\item[{int}]{cols, }
\item[{String}]{file}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}package\mbox{]}}}}
\label{classThreeBRunner_a964e4bac60cc9c5f9f3c81c86b72f3d8}


Referenced by run().

\hypertarget{classThreeBRunner_a00d90419d87e98c0a8754386bb02796c}{
\index{ThreeBRunner@{ThreeBRunner}!run@{run}}
\index{run@{run}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{run}]{\setlength{\rightskip}{0pt plus 5cm}void ThreeBRunner::run (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classThreeBRunner_a00d90419d87e98c0a8754386bb02796c}


Definition at line 1398 of file three\_\-B.java.



References call(), config, cp, fatal, filename, its, mask, pixels, EControlPanel::send\_\-status\_\-text\_\-message(), start\_\-time, and stopped.


\begin{DoxyCode}
    {
        System.out.println("About to call...");
        start_time = (new java.util.Date()).getTime();
        its=0;

        call(config, pixels, (byte[])mask.getPixels(), pixels.length, mask.getHei
      ght(), mask.getWidth(), filename);

        System.out.println("Finished.");
        
        if(!fatal)
        {
            cp.send_status_text_message("Finished\n");
            ij.IJ.showStatus("3B run terminated");
        }

        stopped=true;
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_aab49b46c3c8b50523668be8a7cfa5553}{
\index{ThreeBRunner@{ThreeBRunner}!decodePercent@{decodePercent}}
\index{decodePercent@{decodePercent}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{decodePercent}]{\setlength{\rightskip}{0pt plus 5cm}static String ThreeBRunner::decodePercent (
\begin{DoxyParamCaption}
\item[{String}]{str}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static, private\mbox{]}}}}
\label{classThreeBRunner_aab49b46c3c8b50523668be8a7cfa5553}


Definition at line 1420 of file three\_\-B.java.


\begin{DoxyCode}
    {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length(); i++) 
        {
            char c = str.charAt(i);
            if(c == '+')
                sb.append(' ');
            else if(c == '%')
            {
                sb.append((char) Integer.parseInt(str.substring(i + 1, i + 3), 16
      ));
                i += 2;
            }
            else
                sb.append(c);
        }
        return sb.toString();
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_af54d4f5b5f9ed82c59a1d23fe1c0713d}{
\index{ThreeBRunner@{ThreeBRunner}!addLibraryPath@{addLibraryPath}}
\index{addLibraryPath@{addLibraryPath}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{addLibraryPath}]{\setlength{\rightskip}{0pt plus 5cm}static void ThreeBRunner::addLibraryPath (
\begin{DoxyParamCaption}
\item[{String}]{pathToAdd}
\end{DoxyParamCaption}
)  throws Exception\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classThreeBRunner_af54d4f5b5f9ed82c59a1d23fe1c0713d}


Adds the specified path to the java library path. 


\begin{DoxyParams}{Parameters}
{\em pathToAdd} & the path to add \\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em Exception} & \\
\hline
\end{DoxyExceptions}


Definition at line 1445 of file three\_\-B.java.


\begin{DoxyCode}
                                                                        {
        final Field usrPathsField = ClassLoader.class.getDeclaredField("usr_paths
      ");
        usrPathsField.setAccessible(true);
     
        //get array of paths
        final String[] paths = (String[])usrPathsField.get(null);
     
        //check if the path to add is already present
        for(String path : paths) {
            if(path.equals(pathToAdd)) {
                return;
            }
        }
     
        //add the new path
        final String[] newPaths = Arrays.copyOf(paths, paths.length + 1);
        newPaths[newPaths.length-1] = pathToAdd;
        usrPathsField.set(null, newPaths);
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_a59f4777589db3180aa2072f032f5ccc0}{
\index{ThreeBRunner@{ThreeBRunner}!get\_\-plugin\_\-dir@{get\_\-plugin\_\-dir}}
\index{get\_\-plugin\_\-dir@{get\_\-plugin\_\-dir}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{get\_\-plugin\_\-dir}]{\setlength{\rightskip}{0pt plus 5cm}static String ThreeBRunner::get\_\-plugin\_\-dir (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static, package\mbox{]}}}}
\label{classThreeBRunner_a59f4777589db3180aa2072f032f5ccc0}


Definition at line 1489 of file three\_\-B.java.



Referenced by try\_\-to\_\-load\_\-dlls().


\begin{DoxyCode}
    {
        try{
            String img_url = (new SPair()).getClass().getResource("img").getFile(
      );
            URI jar_url = null;
            
            jar_url= new URI(img_url.substring(0, img_url.length()-5));

            File jar = new File(jar_url);

            System.out.println("File: " + jar.getCanonicalPath());


            String dir = jar.getParentFile().getCanonicalPath() + File.separator;
      
            System.out.println("Dir: " + dir);

            return dir;
            
        }
        catch(Exception e){
            return "";
        }
    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_a3720e36b8c74679fbff3937946de0f1a}{
\index{ThreeBRunner@{ThreeBRunner}!try\_\-to\_\-load\_\-dlls@{try\_\-to\_\-load\_\-dlls}}
\index{try\_\-to\_\-load\_\-dlls@{try\_\-to\_\-load\_\-dlls}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{try\_\-to\_\-load\_\-dlls}]{\setlength{\rightskip}{0pt plus 5cm}static UnsatisfiedLinkError ThreeBRunner::try\_\-to\_\-load\_\-dlls (
\begin{DoxyParamCaption}
\item[{String\mbox{[}$\,$\mbox{]}}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static, package\mbox{]}}}}
\label{classThreeBRunner_a3720e36b8c74679fbff3937946de0f1a}


Definition at line 1514 of file three\_\-B.java.



References get\_\-plugin\_\-dir().


\begin{DoxyCode}
    {
        String dir = get_plugin_dir();
        
        try{
            for(int i=0; i < s.length; i++)
            {
                System.out.println("Loading " + dir+s[i]);
                System.load(dir + s[i]);
            }
            
            return null;
        }
        catch(UnsatisfiedLinkError e)
        {
            System.out.println("Link error: " + e.getMessage());
            return e;
        }

    }
\end{DoxyCode}
\hypertarget{classThreeBRunner_a7840409d23d7a0c17a1fe012eaca6f98}{
\index{ThreeBRunner@{ThreeBRunner}!\mbox{[}static initializer\mbox{]}@{[static initializer]}}
\index{\mbox{[}static initializer\mbox{]}@{[static initializer]}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{[static initializer]}]{\setlength{\rightskip}{0pt plus 5cm}ThreeBRunner::\mbox{[}static initializer\mbox{]} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static, package\mbox{]}}}}
\label{classThreeBRunner_a7840409d23d7a0c17a1fe012eaca6f98}


\subsubsection{Member Data Documentation}
\hypertarget{classThreeBRunner_a991a6ef449443de1a76a8247bcf92495}{
\index{ThreeBRunner@{ThreeBRunner}!mask@{mask}}
\index{mask@{mask}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{mask}]{\setlength{\rightskip}{0pt plus 5cm}ByteProcessor {\bf ThreeBRunner::mask}\hspace{0.3cm}{\ttfamily  \mbox{[}package\mbox{]}}}}
\label{classThreeBRunner_a991a6ef449443de1a76a8247bcf92495}


Definition at line 1285 of file three\_\-B.java.



Referenced by run(), and ThreeBRunner().

\hypertarget{classThreeBRunner_a37aceec1d27fdeb42106aa95319d995a}{
\index{ThreeBRunner@{ThreeBRunner}!pixels@{pixels}}
\index{pixels@{pixels}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{pixels}]{\setlength{\rightskip}{0pt plus 5cm}float \mbox{[}$\,$\mbox{]}\mbox{[}$\,$\mbox{]} {\bf ThreeBRunner::pixels}\hspace{0.3cm}{\ttfamily  \mbox{[}package\mbox{]}}}}
\label{classThreeBRunner_a37aceec1d27fdeb42106aa95319d995a}


Definition at line 1286 of file three\_\-B.java.



Referenced by run(), and ThreeBRunner().

\hypertarget{classThreeBRunner_a3fa23dfb170bf38c94025f0bae171d15}{
\index{ThreeBRunner@{ThreeBRunner}!stop@{stop}}
\index{stop@{stop}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{stop}]{\setlength{\rightskip}{0pt plus 5cm}volatile boolean {\bf ThreeBRunner::stop} = false\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classThreeBRunner_a3fa23dfb170bf38c94025f0bae171d15}


Definition at line 1287 of file three\_\-B.java.



Referenced by should\_\-stop(), and stop\_\-thread().

\hypertarget{classThreeBRunner_acc637ab3d5eb058c404338cbdea1dcaf}{
\index{ThreeBRunner@{ThreeBRunner}!stopped@{stopped}}
\index{stopped@{stopped}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{stopped}]{\setlength{\rightskip}{0pt plus 5cm}volatile boolean {\bf ThreeBRunner::stopped} = false\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classThreeBRunner_acc637ab3d5eb058c404338cbdea1dcaf}


Definition at line 1288 of file three\_\-B.java.



Referenced by has\_\-stopped(), and run().

\hypertarget{classThreeBRunner_a3032c8c4d54e3409ebe73aff4667c7af}{
\index{ThreeBRunner@{ThreeBRunner}!fatal@{fatal}}
\index{fatal@{fatal}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{fatal}]{\setlength{\rightskip}{0pt plus 5cm}boolean {\bf ThreeBRunner::fatal} = false\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classThreeBRunner_a3032c8c4d54e3409ebe73aff4667c7af}


Definition at line 1289 of file three\_\-B.java.



Referenced by die(), and run().

\hypertarget{classThreeBRunner_a7edcbe35a2d5846ffe569caf1d6bcbcb}{
\index{ThreeBRunner@{ThreeBRunner}!cp@{cp}}
\index{cp@{cp}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{cp}]{\setlength{\rightskip}{0pt plus 5cm}{\bf EControlPanel} {\bf ThreeBRunner::cp}\hspace{0.3cm}{\ttfamily  \mbox{[}package\mbox{]}}}}
\label{classThreeBRunner_a7edcbe35a2d5846ffe569caf1d6bcbcb}


Definition at line 1290 of file three\_\-B.java.



Referenced by die(), register(), run(), send\_\-message\_\-string(), and send\_\-new\_\-points().

\hypertarget{classThreeBRunner_a19225e2af36c88473c38d84f2d3def0c}{
\index{ThreeBRunner@{ThreeBRunner}!config@{config}}
\index{config@{config}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{config}]{\setlength{\rightskip}{0pt plus 5cm}String {\bf ThreeBRunner::config}\hspace{0.3cm}{\ttfamily  \mbox{[}package\mbox{]}}}}
\label{classThreeBRunner_a19225e2af36c88473c38d84f2d3def0c}


Definition at line 1291 of file three\_\-B.java.



Referenced by run(), and ThreeBRunner().

\hypertarget{classThreeBRunner_a187f571b60ae9c92599de9abdb8f8b1b}{
\index{ThreeBRunner@{ThreeBRunner}!filename@{filename}}
\index{filename@{filename}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{filename}]{\setlength{\rightskip}{0pt plus 5cm}String {\bf ThreeBRunner::filename}\hspace{0.3cm}{\ttfamily  \mbox{[}package\mbox{]}}}}
\label{classThreeBRunner_a187f571b60ae9c92599de9abdb8f8b1b}


Definition at line 1292 of file three\_\-B.java.



Referenced by run(), and ThreeBRunner().

\hypertarget{classThreeBRunner_a7f7ab8f5c386ced2dde67101cfdf903c}{
\index{ThreeBRunner@{ThreeBRunner}!start\_\-time@{start\_\-time}}
\index{start\_\-time@{start\_\-time}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{start\_\-time}]{\setlength{\rightskip}{0pt plus 5cm}long {\bf ThreeBRunner::start\_\-time}\hspace{0.3cm}{\ttfamily  \mbox{[}package\mbox{]}}}}
\label{classThreeBRunner_a7f7ab8f5c386ced2dde67101cfdf903c}


Definition at line 1293 of file three\_\-B.java.



Referenced by run(), and send\_\-new\_\-points().

\hypertarget{classThreeBRunner_acf96d4453cb681b44dfda8e288a9974b}{
\index{ThreeBRunner@{ThreeBRunner}!its@{its}}
\index{its@{its}!ThreeBRunner@{ThreeBRunner}}
\paragraph[{its}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf ThreeBRunner::its}\hspace{0.3cm}{\ttfamily  \mbox{[}package\mbox{]}}}}
\label{classThreeBRunner_acf96d4453cb681b44dfda8e288a9974b}


Definition at line 1294 of file three\_\-B.java.



Referenced by run(), and send\_\-new\_\-points().



The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
\item 
\hyperlink{three__B_8java}{three\_\-B.java}\end{DoxyCompactItemize}
