rtVTK  0.6.0
Options.h
00001 
00002 /******************************************************************************
00003  * Copyright (c) 2012, Grove City College
00004  * All rights reserved.
00005  *
00006  * Redistribution and use in source and binary forms, with or without
00007  * modification, are permitted provided that the following conditions are
00008  * met:
00009  * 
00010  *  * Redistributions of source code must retain the above copyright
00011  *    notice, this list of conditions and the following disclaimer.
00012  *
00013  *  * Redistributions in binary form must reproduce the above copyright
00014  *    notice, this list of conditions and the following disclaimer in
00015  *    the documentation and/or other materials provided with the
00016  *    distribution.
00017  *
00018  *  * Neither the name of Grove City College nor the names of its
00019  *    contributors may be used to endorse or promote products derived
00020  *    from this software without specific prior written permission.
00021  *
00022  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00023  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00024  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
00025  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
00026  * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00027  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00028  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00029  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00030  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00031  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00032  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00033  *
00034  */
00035 
00036 
00037 #ifndef Core_ioCore_Options_h
00038 #define Core_ioCore_Options_h
00039 
00040 #include <string>
00041 using std::string;
00042 
00043 #include <Core/RGB.t>
00044 
00045 
00046 namespace ioCore
00047 {
00048 
00050   // Using declarations
00051 
00052   using CoreF::RGB;
00053 
00054 
00056   // Structure definition
00057   
00062   struct Options
00063   {
00064 
00065     Options() :
00066       grnd(RGB::Invalid),
00067       sky(RGB::Invalid),
00068       xspp(0),
00069       yspp(0),
00070       xres(0),
00071       yres(0),
00072       thold(0)
00073     {
00074       // no-op
00075     }
00076 
00077     virtual ~Options()
00078     {
00079       // no-op
00080     }
00081 
00082 
00083     // NOTE(cpg) - be careful not to unnecessarily bloat this structure;
00084     //             think carefully before adding a new option...
00085 
00086     // File I/O parameters.
00087     string path;
00088     string fname;
00089     string bname;
00090 
00091     // Ground/sky colors.
00092     RGB grnd;
00093     RGB sky;
00094 
00095     // Image parameters.
00096     uint xspp;
00097     uint yspp;
00098     uint xres;
00099     uint yres;
00100 
00101     // BVH leaf creation threshold.
00102     uint thold;
00103   }; // struct Options
00104 
00105 } // namespace ioCore
00106 
00107 #endif // Core_ioCore_Options_h
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends