174 lines
7.7 KiB
C++
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 }
|
|
};
|
|
|
|
}
|