Coin Logo http://www.sim.no/
http://www.coin3d.org/

SoProfilerTopEngine.h

00001 #ifndef COIN_SOPROFILERTOPENGINE_H
00002 #define COIN_SOPROFILERTOPENGINE_H
00003 
00004 /**************************************************************************\
00005  *
00006  *  This file is part of the Coin 3D visualization library.
00007  *  Copyright (C) by Kongsberg Oil & Gas Technologies.
00008  *
00009  *  This library is free software; you can redistribute it and/or
00010  *  modify it under the terms of the GNU General Public License
00011  *  ("GPL") version 2 as published by the Free Software Foundation.
00012  *  See the file LICENSE.GPL at the root directory of this source
00013  *  distribution for additional information about the GNU GPL.
00014  *
00015  *  For using Coin with software that can not be combined with the GNU
00016  *  GPL, and for taking advantage of the additional benefits of our
00017  *  support services, please contact Kongsberg Oil & Gas Technologies
00018  *  about acquiring a Coin Professional Edition License.
00019  *
00020  *  See http://www.coin3d.org/ for more information.
00021  *
00022  *  Kongsberg Oil & Gas Technologies, Bygdoy Alle 5, 0257 Oslo, NORWAY.
00023  *  http://www.sim.no/  sales@sim.no  coin-support@coin3d.org
00024  *
00025 \**************************************************************************/
00026 
00027 #include <Inventor/engines/SoSubEngine.h>
00028 #include <Inventor/engines/SoEngine.h>
00029 #include <Inventor/engines/SoEngineOutput.h>
00030 #include <Inventor/fields/SoSFInt32.h>
00031 #include <Inventor/fields/SoSFFloat.h>
00032 #include <Inventor/fields/SoSFEnum.h>
00033 #include <Inventor/fields/SoMFName.h>
00034 #include <Inventor/fields/SoMFEnum.h>
00035 #include <Inventor/fields/SoMFTime.h>
00036 #include <Inventor/fields/SoMFUInt32.h>
00037 #include <Inventor/tools/SbPimplPtr.h>
00038 
00039 class SoProfilerTopEngineP;
00040 
00041 class COIN_DLL_API SoProfilerTopEngine : public SoEngine {
00042   typedef SoEngine inherited;
00043   SO_ENGINE_HEADER(SoProfilerTopEngine);
00044 
00045 public:
00046   static void initClass(void);
00047   SoProfilerTopEngine(void);
00048 
00049   enum Column {
00050     NAME,
00051     COUNT,
00052     TIME_SECS,
00053     TIME_SECS_MAX,
00054     TIME_SECS_AVG,
00055     TIME_MSECS,
00056     TIME_MSECS_MAX,
00057     TIME_MSECS_AVG,
00058     TIME_PERCENT,
00059     TIME_PERCENT_MAX,
00060     TIME_PERCENT_AVG
00061   };
00062 
00063   enum SortOrder {
00064     TIME_DEC,
00065     TIME_MAX_DEC,
00066     TIME_AVG_DEC,
00067     COUNT_DEC_TIME_DEC,
00068     COUNT_DEC_TIME_MAX_DEC,
00069     COUNT_DEC_TIME_AVG_DEC,
00070     ALPHANUMERIC_INC
00071   };
00072 
00073   // inputs
00074   SoMFName statisticsNames;
00075   SoMFTime statisticsTimings;
00076   SoMFTime statisticsTimingsMax;
00077   SoMFUInt32 statisticsCounts;
00078 
00079   // output-related
00080   SoMFEnum columns;   // [ NAME, COUNT, TIME_MSECS, TIME_PERCENT ]
00081   SoSFEnum sortOrder; // TIME_DEC
00082   SoSFInt32 maxLines; // 16
00083   SoSFFloat decay;    // 0.0  ([0.0 - 1.0>)
00084 
00085   // result
00086   SoEngineOutput prettyText; // SoMFString
00087 
00088 protected:
00089   virtual ~SoProfilerTopEngine(void);
00090 
00091   virtual void evaluate(void);
00092 
00093 private:
00094   SbPimplPtr<SoProfilerTopEngineP> pimpl;
00095 
00096   SoProfilerTopEngine(const SoProfilerTopEngine & rhs); // disable
00097   SoProfilerTopEngine & operator = (const SoProfilerTopEngine & rhs); // disable
00098 
00099 }; // SoProfilerTopEngine
00100 
00101 #endif // !COIN_SOPROFILERTOPENGINE_H

Copyright © 1998-2010 by Kongsberg Oil & Gas Technologies. All rights reserved.

Generated on Sun May 1 2011 02:58:22 for Coin by Doxygen 1.7.3.