povray/source/optout.cpp
2013-11-06 13:07:19 -05:00

174 lines
7.7 KiB
C++

/*******************************************************************************
* optout.cpp
*
* This module contains functions for credit, usage and options.
*
* ---------------------------------------------------------------------------
* Persistence of Vision Ray Tracer ('POV-Ray') version 3.7.
* Copyright 1991-2013 Persistence of Vision Raytracer Pty. Ltd.
*
* POV-Ray is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* POV-Ray is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* ---------------------------------------------------------------------------
* POV-Ray is based on the popular DKB raytracer version 2.12.
* DKBTrace was originally written by David K. Buck.
* DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
* ---------------------------------------------------------------------------
* $File: //depot/public/povray/3.x/source/optout.cpp $
* $Revision: #1 $
* $Change: 6069 $
* $DateTime: 2013/11/06 11:59:40 $
* $Author: chrisc $
*******************************************************************************/
#include <ctype.h>
#include <time.h>
#include <stdarg.h>
#include <algorithm>
// frame.h must always be the first POV file included (pulls in platform config)
#include "backend/frame.h"
#include "base/povmsgid.h"
#include "backend/math/vector.h"
#include "povray.h"
#include "statspov.h"
// this must be the last file included
#include "base/povdebug.h"
namespace pov
{
/*****************************************************************************
* Local preprocessor defines
******************************************************************************/
/*****************************************************************************
* Local typedefs
******************************************************************************/
/*****************************************************************************
* Local variables
******************************************************************************/
/*****************************************************************************
* Local preprocessor defines
******************************************************************************/
/*****************************************************************************
* Global variables
******************************************************************************/
const INTERSECTION_STATS_INFO intersection_stats[kPOVList_Stat_Last] =
{
{ kPOVList_Stat_RBezierTest, Ray_RBezier_Tests, Ray_RBezier_Tests_Succeeded,
"Bezier Patch" },
{ kPOVList_Stat_BicubicTest, Ray_Bicubic_Tests, Ray_Bicubic_Tests_Succeeded,
"Bicubic Patch" },
{ kPOVList_Stat_BlobTest, Ray_Blob_Tests, Ray_Blob_Tests_Succeeded,
"Blob" },
{ kPOVList_Stat_BlobCpTest, Blob_Element_Tests, Blob_Element_Tests_Succeeded,
"Blob Component" },
{ kPOVList_Stat_BlobBdTest, Blob_Bound_Tests, Blob_Bound_Tests_Succeeded,
"Blob Bound" },
{ kPOVList_Stat_BoxTest, Ray_Box_Tests, Ray_Box_Tests_Succeeded,
"Box" },
{ kPOVList_Stat_ConeCylTest, Ray_Cone_Tests, Ray_Cone_Tests_Succeeded,
"Cone/Cylinder" },
{ kPOVList_Stat_CSGIntersectTest, Ray_CSG_Intersection_Tests, Ray_CSG_Intersection_Tests_Succeeded,
"CSG Intersection" },
{ kPOVList_Stat_CSGMergeTest, Ray_CSG_Merge_Tests, Ray_CSG_Merge_Tests_Succeeded,
"CSG Merge" },
{ kPOVList_Stat_CSGUnionTest, Ray_CSG_Union_Tests, Ray_CSG_Union_Tests_Succeeded,
"CSG Union" },
{ kPOVList_Stat_DiscTest, Ray_Disc_Tests, Ray_Disc_Tests_Succeeded,
"Disc" },
{ kPOVList_Stat_FractalTest, Ray_Fractal_Tests, Ray_Fractal_Tests_Succeeded,
"Fractal" },
{ kPOVList_Stat_HFTest, Ray_HField_Tests, Ray_HField_Tests_Succeeded,
"Height Field" },
{ kPOVList_Stat_HFBoxTest, Ray_HField_Box_Tests, Ray_HField_Box_Tests_Succeeded,
"Height Field Box" },
{ kPOVList_Stat_HFTriangleTest, Ray_HField_Triangle_Tests, Ray_HField_Triangle_Tests_Succeeded,
"Height Field Triangle" },
{ kPOVList_Stat_HFBlockTest, Ray_HField_Block_Tests, Ray_HField_Block_Tests_Succeeded,
"Height Field Block" },
{ kPOVList_Stat_HFCellTest, Ray_HField_Cell_Tests, Ray_HField_Cell_Tests_Succeeded,
"Height Field Cell" },
{ kPOVList_Stat_IsosurfaceTest, Ray_IsoSurface_Tests, Ray_IsoSurface_Tests_Succeeded,
"Isosurface" },
{ kPOVList_Stat_IsosurfaceBdTest, Ray_IsoSurface_Bound_Tests, Ray_IsoSurface_Bound_Tests_Succeeded,
"Isosurface Container" },
{ kPOVList_Stat_IsosurfaceCacheTest,Ray_IsoSurface_Cache, Ray_IsoSurface_Cache_Succeeded,
"Isosurface Cache" },
{ kPOVList_Stat_LatheTest, Ray_Lathe_Tests, Ray_Lathe_Tests_Succeeded,
"Lathe" },
{ kPOVList_Stat_LatheBdTest, Lathe_Bound_Tests, Lathe_Bound_Tests_Succeeded,
"Lathe Bound" },
{ kPOVList_Stat_MeshTest, Ray_Mesh_Tests, Ray_Mesh_Tests_Succeeded,
"Mesh" },
{ kPOVList_Stat_OvusTest, Ray_Ovus_Tests, Ray_Ovus_Tests_Succeeded,
"Ovus" },
{ kPOVList_Stat_PlaneTest, Ray_Plane_Tests, Ray_Plane_Tests_Succeeded,
"Plane" },
{ kPOVList_Stat_PolygonTest, Ray_Polygon_Tests, Ray_Polygon_Tests_Succeeded,
"Polygon" },
{ kPOVList_Stat_PrismTest, Ray_Prism_Tests, Ray_Prism_Tests_Succeeded,
"Prism" },
{ kPOVList_Stat_PrismBdTest, Prism_Bound_Tests, Prism_Bound_Tests_Succeeded,
"Prism Bound" },
{ kPOVList_Stat_ParametricTest, Ray_Parametric_Tests, Ray_Parametric_Tests_Succeeded,
"Parametric" },
{ kPOVList_Stat_ParametricBoxTest, Ray_Par_Bound_Tests, Ray_Par_Bound_Tests_Succeeded,
"Parametric Bound" },
{ kPOVList_Stat_QuardicTest, Ray_Quadric_Tests, Ray_Quadric_Tests_Succeeded,
"Quadric" },
{ kPOVList_Stat_QuadPolyTest, Ray_Poly_Tests, Ray_Poly_Tests_Succeeded,
"Quartic/Poly" },
{ kPOVList_Stat_SphereTest, Ray_Sphere_Tests, Ray_Sphere_Tests_Succeeded,
"Sphere" },
{ kPOVList_Stat_SphereSweepTest, Ray_Sphere_Sweep_Tests, Ray_Sphere_Sweep_Tests_Succeeded,
"Sphere Sweep" },
{ kPOVList_Stat_SuperellipsTest, Ray_Superellipsoid_Tests, Ray_Superellipsoid_Tests_Succeeded,
"Superellipsoid" },
{ kPOVList_Stat_SORTest, Ray_Sor_Tests, Ray_Sor_Tests_Succeeded,
"Surface of Revolution" },
{ kPOVList_Stat_SORBdTest, Sor_Bound_Tests, Sor_Bound_Tests_Succeeded,
"Surface of Rev. Bound" },
{ kPOVList_Stat_TorusTest, Ray_Torus_Tests, Ray_Torus_Tests_Succeeded,
"Torus" },
{ kPOVList_Stat_TorusBdTest, Torus_Bound_Tests, Torus_Bound_Tests_Succeeded,
"Torus Bound" },
{ kPOVList_Stat_TriangleTest, Ray_Triangle_Tests, Ray_Triangle_Tests_Succeeded,
"Triangle" },
{ kPOVList_Stat_TTFontTest, Ray_TTF_Tests, Ray_TTF_Tests_Succeeded,
"True Type Font" },
{ kPOVList_Stat_BoundObjectTest, Bounding_Region_Tests, Bounding_Region_Tests_Succeeded,
"Bounding Object" },
{ kPOVList_Stat_ClipObjectTest, Clipping_Region_Tests, Clipping_Region_Tests_Succeeded,
"Clipping Object" },
{ kPOVList_Stat_BoundingBoxTest, nChecked, nEnqueued,
"Bounding Box" },
{ kPOVList_Stat_LightBufferTest, LBuffer_Tests, LBuffer_Tests_Succeeded,
"Light Buffer" },
{ kPOVList_Stat_VistaBufferTest, VBuffer_Tests, VBuffer_Tests_Succeeded,
"Vista Buffer" },
{ kPOVList_Stat_Last, MaxIntStat, MaxIntStat, NULL }
};
}