Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 36.82 68.10 68.10 839259326 0.00 0.00 NaiveBVH::IntersectBBox(Ray&, Point const*) 9.95 86.51 18.41 3212693710 0.00 0.00 Point::X() const 8.35 101.96 15.45 3212693710 0.00 0.00 Point::Y() const 7.12 115.12 13.16 28554278 0.00 0.00 NaiveBVH::IntersectBVH(Ray&) 6.75 127.60 12.48 2462002756 0.00 0.00 Point::Z() const 3.78 134.60 7.00 1647491844 0.00 0.00 Vector::Y() const 3.60 141.26 6.66 1647491844 0.00 0.00 Vector::X() const 2.63 146.13 4.87 1272146367 0.00 0.00 Vector::Z() const 1.42 148.75 2.62 349413312 0.00 0.00 Vector::Vector(float, float, float) 1.25 151.06 2.31 839259326 0.00 0.00 BBox::GetPoints() 1.24 153.34 2.29 25427968 0.00 0.00 Ray::RecomputeParameters() 1.17 155.50 2.16 61442355 0.00 0.00 Vector::Cross(Vector const&) const 1.14 157.60 2.10 28804283 0.00 0.00 Vector::Normalize() 1.05 159.55 1.95 38528885 0.00 0.00 Triangle::Intersect(Ray&) 1.04 161.47 1.92 25427968 0.00 0.00 ThinLensCamera::GenerateRay(Ray&, float, float) 1.03 163.37 1.90 50855936 0.00 0.00 Random::fRandom() 0.97 165.16 1.79 155694124 0.00 0.00 Vector::operator*(float) const 0.96 166.94 1.78 123017 0.00 0.00 NaiveBVH::Sort(BBox*, int, int, Object**, int) 0.93 168.66 1.72 113017028 0.00 0.00 Vector::Dot(Vector const&) const 0.85 170.24 1.58 76283904 0.00 0.00 ConvertToUnsigned(float) 0.81 171.73 1.49 display() 0.70 173.03 1.30 81742470 0.00 0.00 BBox::operator=(BBox const&) 0.58 174.09 1.06 NaiveBVH::IntersectBVH(RayPacket&) 0.53 175.07 0.98 88147688 0.00 0.00 Vector::operator=(Vector const&) 0.38 175.78 0.70 NaiveBVH::IntersectBBox(RayPacket&, Point const*) 0.38 176.48 0.70 50855938 0.00 0.00 Vector::operator+(Vector const&) const 0.34 177.10 0.62 54482247 0.00 0.00 Point::operator+(Vector const&) const 0.31 177.67 0.57 122377118 0.00 0.00 Point::GetElement(int) const 0.30 178.22 0.55 204869585 0.00 0.00 BBox::GetMin() const 0.30 178.77 0.55 69615632 0.00 0.00 Point::Point(float, float, float) 0.26 179.25 0.47 25427968 0.00 0.00 Ray::Ray() 0.24 179.69 0.45 42153645 0.00 0.00 Point::operator-(Point const&) const 0.22 180.10 0.41 28012339 0.00 0.00 RGBColor::operator+=(RGBColor const&) 0.21 180.49 0.38 53982251 0.00 0.00 operator*(float, Vector const&) 0.18 180.82 0.34 4487856 0.00 0.00 BBox::Expand(BBox const&) 0.18 181.16 0.33 25427968 0.00 0.00 RGBColor::operator*=(float) 0.17 181.47 0.32 25427968 0.00 0.00 Scene::TraceRay(Ray&) 0.14 181.74 0.27 3126310 0.00 0.00 LambertianMaterial::Shade(Ray&, Scene&) const 0.14 182.00 0.26 3126310 0.00 0.00 Ray::Ray(Point const&, Vector const&, unsigned char) 0.14 182.25 0.25 34264962 0.00 0.00 RGBColor::RGBColor(float, float, float) 0.14 182.50 0.25 28554278 0.00 0.00 Group::Intersect(Ray&) 0.11 182.71 0.21 82492467 0.00 0.00 BBox::GetMax() const 0.10 182.90 0.19 121815417 0.00 0.00 Vector::Vector() 0.09 183.07 0.17 25427968 0.00 0.00 RGBColor::Red() const 0.09 183.24 0.17 22301660 0.00 0.00 RGBColor::RGBColor(RGBColor const&) 0.07 183.37 0.13 25427968 0.00 0.00 RGBColor::Blue() const 0.06 183.49 0.12 28554278 0.00 0.00 Ray::WasIntersection() const 0.05 183.59 0.10 1 0.10 0.13 glmVertexNormals 0.05 183.68 0.09 1 0.09 5.37 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) 0.04 183.76 0.08 25427968 0.00 0.00 Ray::NormalizeRayDirection() 0.04 183.84 0.08 10712971 0.00 0.00 Ray::CheckHit(float, Primitive*, Vector const&) 0.04 183.92 0.08 750000 0.00 0.00 BBox::Expand(Point const&) 0.04 183.99 0.07 28085639 0.00 0.00 Point::Point() 0.04 184.06 0.07 sqrt 0.03 184.12 0.06 3126310 0.00 0.00 Scene::TraceShadowRay(Ray&) 0.03 184.18 0.06 1 0.06 0.09 glmFacetNormals 0.03 184.23 0.05 25427968 0.00 0.00 RGBColor::Green() const 0.03 184.28 0.05 1 0.05 0.05 glmFirstPass(_GLMmodel*, __sFILE64*) 0.02 184.32 0.04 3126310 0.00 0.00 Scene::GetLight(int) 0.02 184.36 0.04 374926 0.00 0.00 glmNormalize(float*) 0.02 184.40 0.04 Triangle::~Triangle() 0.02 184.43 0.03 3126313 0.00 0.00 Point::Point(Point const&) 0.02 184.46 0.03 3126311 0.00 0.00 Vector::Vector(Vector const&) 0.02 184.49 0.03 3126310 0.00 0.00 Array1D::operator[](int) 0.02 184.51 0.03 1 0.03 0.12 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) 0.02 184.54 0.03 std::ostream::flush() 0.01 184.57 0.03 Ray::PrintToScreen() 0.01 184.59 0.02 3126310 0.00 0.00 Ray::GetHitPoint() const 0.01 184.61 0.02 3126310 0.00 0.00 Triangle::ComputeNormal(Ray&) const 0.01 184.63 0.02 2584371 0.00 0.00 RGBColor::operator*(float) const 0.01 184.65 0.02 750000 0.00 0.00 glmDot(float*, float*) 0.01 184.67 0.02 1 0.02 0.22 Group::ComputerBBoxForEachObject(Object**) 0.01 184.69 0.02 _Unwind_SjLj_Register 0.01 184.71 0.02 _Unwind_SjLj_Unregister 0.01 184.73 0.02 Ray::Ray(Point const&, Vector const&, unsigned char) 0.01 184.75 0.02 std::__timepunct::__timepunct(std::__timepunct_cache*, unsigned int) 0.01 184.77 0.02 operator new(unsigned int) 0.01 184.78 0.01 3126310 0.00 0.00 Light::GetPosition() 0.01 184.79 0.01 3126310 0.00 0.00 RGBColor::operator*(RGBColor const&) const 0.01 184.80 0.01 1203835 0.00 0.00 BBox::BBox() 0.01 184.81 0.01 784655 0.00 0.00 BBox::~BBox() 0.01 184.82 0.01 750000 0.00 0.00 Point::Point(float*) 0.01 184.83 0.01 750000 0.00 0.00 Point::operator+(Point const&) const 0.01 184.84 0.01 250000 0.00 0.00 Triangle::ComputerBoundingBox() 0.01 184.85 0.01 6 0.00 0.00 glmAbs(float) 0.01 184.86 0.01 1 0.01 0.01 glmSecondPass(_GLMmodel*, __sFILE64*) 0.01 184.87 0.01 1 0.01 0.02 glmUnitize 0.01 184.88 0.01 global constructors keyed to _ZN6RandomC2Em 0.01 184.89 0.01 ThinLensCamera::GenerateRay(float, float) 0.01 184.90 0.01 cos 0.01 184.91 0.01 sin 0.01 184.92 0.01 sscanf 0.01 184.93 0.01 strstr 0.00 184.94 0.01 1 0.01 0.01 LambertianMaterial::LambertianMaterial(RGBColor const&) 0.00 184.94 0.01 Ray::CheckHit(float, Primitive*) 0.00 184.94 0.01 Random::dRandom() 0.00 184.95 0.01 Random::sRandom() 0.00 184.95 0.00 3126310 0.00 0.00 Scene::GetNumLights() 0.00 184.95 0.00 3126310 0.00 0.00 Primitive::GetMaterial() 0.00 184.95 0.00 2584371 0.00 0.00 Light::GetColor() 0.00 184.95 0.00 750000 0.00 0.00 Point::operator*(float) const 0.00 184.95 0.00 500000 0.00 0.00 NaiveBVH::NaiveBVH() 0.00 184.95 0.00 250001 0.00 0.00 Object::Object() 0.00 184.95 0.00 250000 0.00 0.00 glmCross(float*, float*, float*) 0.00 184.95 0.00 250000 0.00 0.00 Group::Add(Object*) 0.00 184.95 0.00 250000 0.00 0.00 Array1D::Add(Object* const&) 0.00 184.95 0.00 250000 0.00 0.00 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) 0.00 184.95 0.00 250000 0.00 0.00 Primitive::Primitive(Material*) 0.00 184.95 0.00 102 0.00 0.00 Scene::GetWidth() 0.00 184.95 0.00 102 0.00 0.00 Scene::GetHeight() 0.00 184.95 0.00 102 0.00 0.00 ThinLensCamera::GetScreenWidth() const 0.00 184.95 0.00 102 0.00 0.00 ThinLensCamera::GetScreenHeight() const 0.00 184.95 0.00 97 0.00 0.00 DisplayTimer() 0.00 184.95 0.00 97 0.00 0.00 Scene::GetCamera() 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 __static_initialization_and_destruction_0(int, int) 0.00 184.95 0.00 2 0.00 0.00 glmMax(float, float) 0.00 184.95 0.00 2 0.00 0.00 Vector::operator*=(float) 0.00 184.95 0.00 1 0.00 0.00 OpenGLMain(int, char**) 0.00 184.95 0.00 1 0.00 0.00 glmAddGroup(_GLMmodel*, char*) 0.00 184.95 0.00 1 0.00 0.00 glmFindGroup(_GLMmodel*, char*) 0.00 184.95 0.00 1 0.00 0.00 ThinLensCamera::RecomputeCameraParameters() 0.00 184.95 0.00 1 0.00 0.00 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) 0.00 184.95 0.00 1 0.00 5.59 Group::PreProcess() 0.00 184.95 0.00 1 0.00 0.00 Group::Group() 0.00 184.95 0.00 1 0.00 0.00 Light::Light(Point const&, RGBColor const&) 0.00 184.95 0.00 1 0.00 0.00 Scene::SetGeometry(Object*) 0.00 184.95 0.00 1 0.00 6.01 Scene::SetGeometry(char*) 0.00 184.95 0.00 1 0.00 0.00 Scene::AddLight(Light*) 0.00 184.95 0.00 1 0.00 0.00 Scene::SetCamera(ThinLensCamera*) 0.00 184.95 0.00 1 0.00 0.00 Scene::Scene() 0.00 184.95 0.00 1 0.00 0.00 Random::Random(unsigned long) 0.00 184.95 0.00 1 0.00 0.00 Array1D::Add(Light* const&) 0.00 184.95 0.00 1 0.00 0.00 Array1D::Array1D() 0.00 184.95 0.00 1 0.00 0.00 Array1D::GetData() 0.00 184.95 0.00 1 0.00 0.00 Array1D::Array1D() 0.00 184.95 0.00 1 0.00 0.00 Array1D::Array1D() 0.00 184.95 0.00 1 0.00 0.00 Material::Material() 0.00 184.95 0.00 1 0.00 0.00 NaiveBVH::~NaiveBVH() 0.00 184.95 0.00 1 0.00 0.00 RGBColor::RGBColor() 0.00 184.95 0.00 1 0.00 0.00 Vector::Length() const 0.00 184.95 0.00 1 0.00 0.06 glmReadOBJ % the percentage of the total running time of the time program used by this function. cumulative a running sum of the number of seconds accounted seconds for by this function and those listed above it. self the number of seconds accounted for by this seconds function alone. This is the major sort for this listing. calls the number of times this function was invoked, if this function is profiled, else blank. self the average number of milliseconds spent in this ms/call function per call, if this function is profiled, else blank. total the average number of milliseconds spent in this ms/call function and its descendents per call, if this function is profiled, else blank. name the name of the function. This is the minor sort for this listing. The index shows the location of the function in the gprof listing. If the index is in parenthesis it shows where it would appear in the gprof listing if it were to be printed. Call graph (explanation follows) granularity: each sample hit covers 4 byte(s) for 0.01% of 184.95 seconds index % time self children called name [1] 95.6 1.49 175.35 display() [1] 0.32 156.82 25427968/25427968 Scene::TraceRay(Ray&) [2] 1.92 12.81 25427968/25427968 ThinLensCamera::GenerateRay(Ray&, float, float) [10] 1.58 0.00 76283904/76283904 ConvertToUnsigned(float) [31] 0.47 0.18 25427968/25427968 Ray::Ray() [40] 0.37 0.00 25427968/28012339 RGBColor::operator+=(RGBColor const&) [45] 0.33 0.00 25427968/25427968 RGBColor::operator*=(float) [46] 0.19 0.00 25427968/34264962 RGBColor::RGBColor(float, float, float) [47] 0.17 0.00 25427968/25427968 RGBColor::Red() const [52] 0.13 0.00 25427968/25427968 RGBColor::Blue() const [58] 0.05 0.00 25427968/25427968 RGBColor::Green() const [67] 0.00 0.00 97/97 Scene::GetCamera() [126] 0.00 0.00 97/102 Scene::GetWidth() [121] 0.00 0.00 97/102 Scene::GetHeight() [122] 0.00 0.00 97/97 DisplayTimer() [125] ----------------------------------------------- 0.32 156.82 25427968/25427968 display() [1] [2] 85.0 0.32 156.82 25427968 Scene::TraceRay(Ray&) [2] 0.22 137.80 25427968/28554278 Group::Intersect(Ray&) [3] 0.27 18.26 3126310/3126310 LambertianMaterial::Shade(Ray&, Scene&) const [6] 0.17 0.00 22301658/22301660 RGBColor::RGBColor(RGBColor const&) [53] 0.11 0.00 25427968/28554278 Ray::WasIntersection() const [59] 0.00 0.00 3126310/3126310 Primitive::GetMaterial() [114] ----------------------------------------------- 0.03 16.94 3126310/28554278 Scene::TraceShadowRay(Ray&) [8] 0.22 137.80 25427968/28554278 Scene::TraceRay(Ray&) [2] [3] 83.8 0.25 154.74 28554278 Group::Intersect(Ray&) [3] 13.16 141.58 28554278/28554278 NaiveBVH::IntersectBVH(Ray&) [4] ----------------------------------------------- 810705048 NaiveBVH::IntersectBVH(Ray&) [4] 13.16 141.58 28554278/28554278 Group::Intersect(Ray&) [3] [4] 83.7 13.16 141.58 28554278+810705048 NaiveBVH::IntersectBVH(Ray&) [4] 68.10 63.68 839259326/839259326 NaiveBVH::IntersectBBox(Ray&, Point const*) [5] 1.95 5.55 38528885/38528885 Triangle::Intersect(Ray&) [12] 2.31 0.00 839259326/839259326 BBox::GetPoints() [25] 810705048 NaiveBVH::IntersectBVH(Ray&) [4] ----------------------------------------------- 68.10 63.68 839259326/839259326 NaiveBVH::IntersectBVH(Ray&) [4] [5] 71.3 68.10 63.68 839259326 NaiveBVH::IntersectBBox(Ray&, Point const*) [5] 18.23 0.00 3180766576/3212693710 Point::X() const [7] 15.30 0.00 3180766576/3212693710 Point::Y() const [9] 12.32 0.00 2430075622/2462002756 Point::Z() const [11] 6.76 0.00 1590383288/1647491844 Vector::Y() const [13] 6.43 0.00 1590383288/1647491844 Vector::X() const [14] 4.65 0.00 1215037811/1272146367 Vector::Z() const [19] ----------------------------------------------- 0.27 18.26 3126310/3126310 Scene::TraceRay(Ray&) [2] [6] 10.0 0.27 18.26 3126310 LambertianMaterial::Shade(Ray&, Scene&) const [6] 0.06 16.97 3126310/3126310 Scene::TraceShadowRay(Ray&) [8] 0.26 0.20 3126310/3126310 Ray::Ray(Point const&, Vector const&, unsigned char) [44] 0.23 0.00 3126310/28804283 Vector::Normalize() [26] 0.02 0.14 3126310/3126310 Ray::GetHitPoint() const [56] 0.04 0.03 3126310/3126310 Scene::GetLight(int) [63] 0.03 0.02 3126310/42153645 Point::operator-(Point const&) const [38] 0.02 0.03 3126310/3126310 Triangle::ComputeNormal(Ray&) const [66] 0.04 0.00 2584371/113017028 Vector::Dot(Vector const&) const [30] 0.02 0.02 2584371/2584371 RGBColor::operator*(float) const [71] 0.04 0.00 2584371/28012339 RGBColor::operator+=(RGBColor const&) [45] 0.01 0.02 3126310/3126310 RGBColor::operator*(RGBColor const&) const [74] 0.02 0.00 3126310/34264962 RGBColor::RGBColor(float, float, float) [47] 0.01 0.00 3126310/28554278 Ray::WasIntersection() const [59] 0.01 0.00 3126310/3126310 Light::GetPosition() [89] 0.00 0.00 3126310/3126310 Scene::GetNumLights() [113] 0.00 0.00 2584371/2584371 Light::GetColor() [115] ----------------------------------------------- 0.00 0.00 499998/3212693710 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 0.03 0.00 4500000/3212693710 BBox::Expand(Point const&) [55] 0.15 0.00 26927136/3212693710 BBox::Expand(BBox const&) [37] 18.23 0.00 3180766576/3212693710 NaiveBVH::IntersectBBox(Ray&, Point const*) [5] [7] 10.0 18.41 0.00 3212693710 Point::X() const [7] ----------------------------------------------- 0.06 16.97 3126310/3126310 LambertianMaterial::Shade(Ray&, Scene&) const [6] [8] 9.2 0.06 16.97 3126310 Scene::TraceShadowRay(Ray&) [8] 0.03 16.94 3126310/28554278 Group::Intersect(Ray&) [3] ----------------------------------------------- 0.00 0.00 499998/3212693710 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 0.02 0.00 4500000/3212693710 BBox::Expand(Point const&) [55] 0.13 0.00 26927136/3212693710 BBox::Expand(BBox const&) [37] 15.30 0.00 3180766576/3212693710 NaiveBVH::IntersectBBox(Ray&, Point const*) [5] [9] 8.4 15.45 0.00 3212693710 Point::Y() const [9] ----------------------------------------------- 1.92 12.81 25427968/25427968 display() [1] [10] 8.0 1.92 12.81 25427968 ThinLensCamera::GenerateRay(Ray&, float, float) [10] 2.29 1.09 25427968/25427968 Ray::RecomputeParameters() [21] 0.08 1.85 25427968/25427968 Ray::NormalizeRayDirection() [27] 1.17 0.76 101711872/155694124 Vector::operator*(float) const [22] 1.90 0.00 50855936/50855936 Random::fRandom() [28] 0.36 0.97 50855936/53982251 operator*(float, Vector const&) [32] 0.70 0.38 50855936/50855938 Vector::operator+(Vector const&) const [33] 0.58 0.40 50855936/54482247 Point::operator+(Vector const&) const [35] 0.28 0.00 25427968/88147688 Vector::operator=(Vector const&) [36] ----------------------------------------------- 0.00 0.00 499998/2462002756 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 0.02 0.00 4500000/2462002756 BBox::Expand(Point const&) [55] 0.14 0.00 26927136/2462002756 BBox::Expand(BBox const&) [37] 12.32 0.00 2430075622/2462002756 NaiveBVH::IntersectBBox(Ray&, Point const*) [5] [11] 6.7 12.48 0.00 2462002756 Point::Z() const [11] ----------------------------------------------- 1.95 5.55 38528885/38528885 NaiveBVH::IntersectBVH(Ray&) [4] [12] 4.1 1.95 5.55 38528885 Triangle::Intersect(Ray&) [12] 2.15 0.46 61192353/61442355 Vector::Cross(Vector const&) const [23] 1.68 0.00 110432657/113017028 Vector::Dot(Vector const&) const [30] 0.41 0.29 38527333/42153645 Point::operator-(Point const&) const [38] 0.25 0.00 22663468/88147688 Vector::operator=(Vector const&) [36] 0.08 0.08 10712971/10712971 Ray::CheckHit(float, Primitive*, Vector const&) [54] 0.08 0.00 10712971/349413312 Vector::Vector(float, float, float) [24] 0.06 0.00 38528885/121815417 Vector::Vector() [50] ----------------------------------------------- 0.03 0.00 6252620/1647491844 Ray::Ray(Point const&, Vector const&, unsigned char) [44] 0.22 0.00 50855936/1647491844 Ray::RecomputeParameters() [21] 6.76 0.00 1590383288/1647491844 NaiveBVH::IntersectBBox(Ray&, Point const*) [5] [13] 3.8 7.00 0.00 1647491844 Vector::Y() const [13] ----------------------------------------------- 0.03 0.00 6252620/1647491844 Ray::Ray(Point const&, Vector const&, unsigned char) [44] 0.21 0.00 50855936/1647491844 Ray::RecomputeParameters() [21] 6.43 0.00 1590383288/1647491844 NaiveBVH::IntersectBBox(Ray&, Point const*) [5] [14] 3.6 6.66 0.00 1647491844 Vector::X() const [14] ----------------------------------------------- [15] 3.2 0.00 6.01 main [15] 0.00 6.01 1/1 Scene::SetGeometry(char*) [16] 0.00 0.00 1/1 Scene::Scene() [109] 0.00 0.00 1/1 OpenGLMain(int, char**) [150] ----------------------------------------------- 0.00 6.01 1/1 main [15] [16] 3.2 0.00 6.01 1 Scene::SetGeometry(char*) [16] 0.00 5.59 1/1 Group::PreProcess() [17] 0.10 0.03 1/1 glmVertexNormals [57] 0.03 0.09 1/1 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [60] 0.06 0.03 1/1 glmFacetNormals [61] 0.00 0.06 1/1 glmReadOBJ [65] 0.01 0.01 1/1 glmUnitize [81] 0.01 0.00 1/1 LambertianMaterial::LambertianMaterial(RGBColor const&) [101] 0.00 0.00 1/1 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [105] 0.00 0.00 3/69615632 Point::Point(float, float, float) [43] 0.00 0.00 1/1 Light::Light(Point const&, RGBColor const&) [107] 0.00 0.00 2/34264962 RGBColor::RGBColor(float, float, float) [47] 0.00 0.00 1/349413312 Vector::Vector(float, float, float) [24] 0.00 0.00 1/1 Scene::SetCamera(ThinLensCamera*) [156] 0.00 0.00 1/1 Group::Group() [153] 0.00 0.00 1/1 Scene::SetGeometry(Object*) [154] 0.00 0.00 1/1 Scene::AddLight(Light*) [155] ----------------------------------------------- 0.00 5.59 1/1 Scene::SetGeometry(char*) [16] [17] 3.0 0.00 5.59 1 Group::PreProcess() [17] 0.09 5.28 1/1 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 0.02 0.20 1/1 Group::ComputerBBoxForEachObject(Object**) [48] 0.00 0.00 1/500000 NaiveBVH::NaiveBVH() [88] 0.00 0.00 1/1 NaiveBVH::~NaiveBVH() [108] 0.00 0.00 1/1 Array1D::GetData() [160] ----------------------------------------------- 499998 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 0.09 5.28 1/1 Group::PreProcess() [17] [18] 2.9 0.09 5.28 1+499998 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 1.78 2.62 123017/123017 NaiveBVH::Sort(BBox*, int, int, Object**, int) [20] 0.34 0.49 4487856/4487856 BBox::Expand(BBox const&) [37] 0.00 0.01 499999/500000 NaiveBVH::NaiveBVH() [88] 0.01 0.00 499999/81742470 BBox::operator=(BBox const&) [29] 0.00 0.01 249999/1203835 BBox::BBox() [72] 0.00 0.00 249999/784655 BBox::~BBox() [90] 0.00 0.00 499998/3212693710 Point::X() const [7] 0.00 0.00 499998/2462002756 Point::Z() const [11] 0.00 0.00 499998/3212693710 Point::Y() const [9] 0.00 0.00 749997/204869585 BBox::GetMin() const [42] 0.00 0.00 749997/82492467 BBox::GetMax() const [49] 499998 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] ----------------------------------------------- 0.02 0.00 6252620/1272146367 Ray::Ray(Point const&, Vector const&, unsigned char) [44] 0.19 0.00 50855936/1272146367 Ray::RecomputeParameters() [21] 4.65 0.00 1215037811/1272146367 NaiveBVH::IntersectBBox(Ray&, Point const*) [5] [19] 2.6 4.87 0.00 1272146367 Vector::Z() const [19] ----------------------------------------------- 161638 NaiveBVH::Sort(BBox*, int, int, Object**, int) [20] 1.78 2.62 123017/123017 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] [20] 2.4 1.78 2.62 123017+161638 NaiveBVH::Sort(BBox*, int, int, Object**, int) [20] 1.29 0.42 80992471/81742470 BBox::operator=(BBox const&) [29] 0.57 0.00 122377118/122377118 Point::GetElement(int) const [41] 0.33 0.00 122377118/204869585 BBox::GetMin() const [42] 0.00 0.00 203836/1203835 BBox::BBox() [72] 0.00 0.00 284655/784655 BBox::~BBox() [90] 161638 NaiveBVH::Sort(BBox*, int, int, Object**, int) [20] ----------------------------------------------- 2.29 1.09 25427968/25427968 ThinLensCamera::GenerateRay(Ray&, float, float) [10] [21] 1.8 2.29 1.09 25427968 Ray::RecomputeParameters() [21] 0.28 0.00 25427968/88147688 Vector::operator=(Vector const&) [36] 0.22 0.00 50855936/1647491844 Vector::Y() const [13] 0.21 0.00 50855936/1647491844 Vector::X() const [14] 0.19 0.00 50855936/1272146367 Vector::Z() const [19] 0.19 0.00 25427968/349413312 Vector::Vector(float, float, float) [24] ----------------------------------------------- 0.00 0.00 1/155694124 ThinLensCamera::RecomputeCameraParameters() [106] 0.62 0.40 53982251/155694124 operator*(float, Vector const&) [32] 1.17 0.76 101711872/155694124 ThinLensCamera::GenerateRay(Ray&, float, float) [10] [22] 1.6 1.79 1.17 155694124 Vector::operator*(float) const [22] 1.17 0.00 155694124/349413312 Vector::Vector(float, float, float) [24] ----------------------------------------------- 0.00 0.00 2/61442355 ThinLensCamera::RecomputeCameraParameters() [106] 0.01 0.00 250000/61442355 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [69] 2.15 0.46 61192353/61442355 Triangle::Intersect(Ray&) [12] [23] 1.4 2.16 0.46 61442355 Vector::Cross(Vector const&) const [23] 0.46 0.00 61442355/349413312 Vector::Vector(float, float, float) [24] ----------------------------------------------- 0.00 0.00 1/349413312 Scene::SetGeometry(char*) [16] 0.02 0.00 3126310/349413312 Ray::Ray(Point const&, Vector const&, unsigned char) [44] 0.08 0.00 10712971/349413312 Triangle::Intersect(Ray&) [12] 0.19 0.00 25427968/349413312 Ray::RecomputeParameters() [21] 0.32 0.00 42153645/349413312 Point::operator-(Point const&) const [38] 0.38 0.00 50855938/349413312 Vector::operator+(Vector const&) const [33] 0.46 0.00 61442355/349413312 Vector::Cross(Vector const&) const [23] 1.17 0.00 155694124/349413312 Vector::operator*(float) const [22] [24] 1.4 2.62 0.00 349413312 Vector::Vector(float, float, float) [24] ----------------------------------------------- 2.31 0.00 839259326/839259326 NaiveBVH::IntersectBVH(Ray&) [4] [25] 1.2 2.31 0.00 839259326 BBox::GetPoints() [25] ----------------------------------------------- 0.00 0.00 5/28804283 ThinLensCamera::RecomputeCameraParameters() [106] 0.02 0.00 250000/28804283 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [69] 0.23 0.00 3126310/28804283 LambertianMaterial::Shade(Ray&, Scene&) const [6] 1.85 0.00 25427968/28804283 Ray::NormalizeRayDirection() [27] [26] 1.1 2.10 0.00 28804283 Vector::Normalize() [26] ----------------------------------------------- 0.08 1.85 25427968/25427968 ThinLensCamera::GenerateRay(Ray&, float, float) [10] [27] 1.0 0.08 1.85 25427968 Ray::NormalizeRayDirection() [27] 1.85 0.00 25427968/28804283 Vector::Normalize() [26] ----------------------------------------------- 1.90 0.00 50855936/50855936 ThinLensCamera::GenerateRay(Ray&, float, float) [10] [28] 1.0 1.90 0.00 50855936 Random::fRandom() [28] ----------------------------------------------- 0.00 0.00 250000/81742470 Group::ComputerBBoxForEachObject(Object**) [48] 0.01 0.00 499999/81742470 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 1.29 0.42 80992471/81742470 NaiveBVH::Sort(BBox*, int, int, Object**, int) [20] [29] 0.9 1.30 0.43 81742470 BBox::operator=(BBox const&) [29] 0.22 0.00 81742470/204869585 BBox::GetMin() const [42] 0.21 0.00 81742470/82492467 BBox::GetMax() const [49] ----------------------------------------------- 0.04 0.00 2584371/113017028 LambertianMaterial::Shade(Ray&, Scene&) const [6] 1.68 0.00 110432657/113017028 Triangle::Intersect(Ray&) [12] [30] 0.9 1.72 0.00 113017028 Vector::Dot(Vector const&) const [30] ----------------------------------------------- 1.58 0.00 76283904/76283904 display() [1] [31] 0.9 1.58 0.00 76283904 ConvertToUnsigned(float) [31] ----------------------------------------------- 0.00 0.00 5/53982251 ThinLensCamera::RecomputeCameraParameters() [106] 0.02 0.06 3126310/53982251 Ray::GetHitPoint() const [56] 0.36 0.97 50855936/53982251 ThinLensCamera::GenerateRay(Ray&, float, float) [10] [32] 0.8 0.38 1.03 53982251 operator*(float, Vector const&) [32] 0.62 0.40 53982251/155694124 Vector::operator*(float) const [22] ----------------------------------------------- 0.00 0.00 2/50855938 ThinLensCamera::RecomputeCameraParameters() [106] 0.70 0.38 50855936/50855938 ThinLensCamera::GenerateRay(Ray&, float, float) [10] [33] 0.6 0.70 0.38 50855938 Vector::operator+(Vector const&) const [33] 0.38 0.00 50855938/349413312 Vector::Vector(float, float, float) [24] ----------------------------------------------- [34] 0.6 1.06 0.00 NaiveBVH::IntersectBVH(RayPacket&) [34] ----------------------------------------------- 0.00 0.00 1/54482247 ThinLensCamera::RecomputeCameraParameters() [106] 0.01 0.00 500000/54482247 Triangle::ComputerBoundingBox() [51] 0.04 0.02 3126310/54482247 Ray::GetHitPoint() const [56] 0.58 0.40 50855936/54482247 ThinLensCamera::GenerateRay(Ray&, float, float) [10] [35] 0.6 0.62 0.43 54482247 Point::operator+(Vector const&) const [35] 0.43 0.00 54482247/69615632 Point::Point(float, float, float) [43] ----------------------------------------------- 0.00 0.00 9/88147688 ThinLensCamera::RecomputeCameraParameters() [106] 0.01 0.00 750000/88147688 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [69] 0.03 0.00 3126310/88147688 Triangle::ComputeNormal(Ray&) const [66] 0.03 0.00 3126310/88147688 Ray::Ray(Point const&, Vector const&, unsigned char) [44] 0.08 0.00 7625655/88147688 Ray::CheckHit(float, Primitive*, Vector const&) [54] 0.25 0.00 22663468/88147688 Triangle::Intersect(Ray&) [12] 0.28 0.00 25427968/88147688 Ray::RecomputeParameters() [21] 0.28 0.00 25427968/88147688 ThinLensCamera::GenerateRay(Ray&, float, float) [10] [36] 0.5 0.98 0.00 88147688 Vector::operator=(Vector const&) [36] ----------------------------------------------- 0.34 0.49 4487856/4487856 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] [37] 0.4 0.34 0.49 4487856 BBox::Expand(BBox const&) [37] 0.15 0.00 26927136/3212693710 Point::X() const [7] 0.14 0.00 26927136/2462002756 Point::Z() const [11] 0.13 0.00 26927136/3212693710 Point::Y() const [9] 0.07 0.00 8975712/69615632 Point::Point(float, float, float) [43] ----------------------------------------------- 0.00 0.00 2/42153645 ThinLensCamera::RecomputeCameraParameters() [106] 0.01 0.00 500000/42153645 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [69] 0.03 0.02 3126310/42153645 LambertianMaterial::Shade(Ray&, Scene&) const [6] 0.41 0.29 38527333/42153645 Triangle::Intersect(Ray&) [12] [38] 0.4 0.45 0.32 42153645 Point::operator-(Point const&) const [38] 0.32 0.00 42153645/349413312 Vector::Vector(float, float, float) [24] ----------------------------------------------- [39] 0.4 0.70 0.00 NaiveBVH::IntersectBBox(RayPacket&, Point const*) [39] ----------------------------------------------- 0.47 0.18 25427968/25427968 display() [1] [40] 0.4 0.47 0.18 25427968 Ray::Ray() [40] 0.12 0.00 76283904/121815417 Vector::Vector() [50] 0.06 0.00 25427968/28085639 Point::Point() [62] ----------------------------------------------- 0.57 0.00 122377118/122377118 NaiveBVH::Sort(BBox*, int, int, Object**, int) [20] [41] 0.3 0.57 0.00 122377118 Point::GetElement(int) const [41] ----------------------------------------------- 0.00 0.00 749997/204869585 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 0.22 0.00 81742470/204869585 BBox::operator=(BBox const&) [29] 0.33 0.00 122377118/204869585 NaiveBVH::Sort(BBox*, int, int, Object**, int) [20] [42] 0.3 0.55 0.00 204869585 BBox::GetMin() const [42] ----------------------------------------------- 0.00 0.00 3/69615632 Scene::SetGeometry(char*) [16] 0.01 0.00 750000/69615632 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [60] 0.01 0.00 750000/69615632 Point::operator*(float) const [100] 0.01 0.00 750000/69615632 Point::operator+(Point const&) const [87] 0.01 0.00 1500000/69615632 BBox::Expand(Point const&) [55] 0.02 0.00 2407670/69615632 BBox::BBox() [72] 0.07 0.00 8975712/69615632 BBox::Expand(BBox const&) [37] 0.43 0.00 54482247/69615632 Point::operator+(Vector const&) const [35] [43] 0.3 0.55 0.00 69615632 Point::Point(float, float, float) [43] ----------------------------------------------- 0.26 0.20 3126310/3126310 LambertianMaterial::Shade(Ray&, Scene&) const [6] [44] 0.3 0.26 0.20 3126310 Ray::Ray(Point const&, Vector const&, unsigned char) [44] 0.03 0.00 3126310/88147688 Vector::operator=(Vector const&) [36] 0.03 0.00 3126310/3126311 Vector::Vector(Vector const&) [76] 0.03 0.00 3126310/3126313 Point::Point(Point const&) [75] 0.03 0.00 6252620/1647491844 Vector::Y() const [13] 0.03 0.00 6252620/1647491844 Vector::X() const [14] 0.02 0.00 6252620/1272146367 Vector::Z() const [19] 0.02 0.00 3126310/349413312 Vector::Vector(float, float, float) [24] 0.01 0.00 6252620/121815417 Vector::Vector() [50] ----------------------------------------------- 0.04 0.00 2584371/28012339 LambertianMaterial::Shade(Ray&, Scene&) const [6] 0.37 0.00 25427968/28012339 display() [1] [45] 0.2 0.41 0.00 28012339 RGBColor::operator+=(RGBColor const&) [45] ----------------------------------------------- 0.33 0.00 25427968/25427968 display() [1] [46] 0.2 0.33 0.00 25427968 RGBColor::operator*=(float) [46] ----------------------------------------------- 0.00 0.00 1/34264962 Scene::Scene() [109] 0.00 0.00 2/34264962 Scene::SetGeometry(char*) [16] 0.02 0.00 2584371/34264962 RGBColor::operator*(float) const [71] 0.02 0.00 3126310/34264962 LambertianMaterial::Shade(Ray&, Scene&) const [6] 0.02 0.00 3126310/34264962 RGBColor::operator*(RGBColor const&) const [74] 0.19 0.00 25427968/34264962 display() [1] [47] 0.1 0.25 0.00 34264962 RGBColor::RGBColor(float, float, float) [47] ----------------------------------------------- 0.02 0.20 1/1 Group::PreProcess() [17] [48] 0.1 0.02 0.20 1 Group::ComputerBBoxForEachObject(Object**) [48] 0.01 0.18 250000/250000 Triangle::ComputerBoundingBox() [51] 0.00 0.00 250000/81742470 BBox::operator=(BBox const&) [29] 0.00 0.00 250000/784655 BBox::~BBox() [90] ----------------------------------------------- 0.00 0.00 749997/82492467 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 0.21 0.00 81742470/82492467 BBox::operator=(BBox const&) [29] [49] 0.1 0.21 0.00 82492467 BBox::GetMax() const [49] ----------------------------------------------- 0.00 0.00 8/121815417 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [105] 0.00 0.00 750000/121815417 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [69] 0.01 0.00 6252620/121815417 Ray::Ray(Point const&, Vector const&, unsigned char) [44] 0.06 0.00 38528885/121815417 Triangle::Intersect(Ray&) [12] 0.12 0.00 76283904/121815417 Ray::Ray() [40] [50] 0.1 0.19 0.00 121815417 Vector::Vector() [50] ----------------------------------------------- 0.01 0.18 250000/250000 Group::ComputerBBoxForEachObject(Object**) [48] [51] 0.1 0.01 0.18 250000 Triangle::ComputerBoundingBox() [51] 0.08 0.08 750000/750000 BBox::Expand(Point const&) [55] 0.01 0.00 500000/54482247 Point::operator+(Vector const&) const [35] 0.00 0.01 250000/1203835 BBox::BBox() [72] ----------------------------------------------- 0.17 0.00 25427968/25427968 display() [1] [52] 0.1 0.17 0.00 25427968 RGBColor::Red() const [52] ----------------------------------------------- 0.00 0.00 1/22301660 LambertianMaterial::LambertianMaterial(RGBColor const&) [101] 0.00 0.00 1/22301660 Light::Light(Point const&, RGBColor const&) [107] 0.17 0.00 22301658/22301660 Scene::TraceRay(Ray&) [2] [53] 0.1 0.17 0.00 22301660 RGBColor::RGBColor(RGBColor const&) [53] ----------------------------------------------- 0.08 0.08 10712971/10712971 Triangle::Intersect(Ray&) [12] [54] 0.1 0.08 0.08 10712971 Ray::CheckHit(float, Primitive*, Vector const&) [54] 0.08 0.00 7625655/88147688 Vector::operator=(Vector const&) [36] ----------------------------------------------- 0.08 0.08 750000/750000 Triangle::ComputerBoundingBox() [51] [55] 0.1 0.08 0.08 750000 BBox::Expand(Point const&) [55] 0.03 0.00 4500000/3212693710 Point::X() const [7] 0.02 0.00 4500000/2462002756 Point::Z() const [11] 0.02 0.00 4500000/3212693710 Point::Y() const [9] 0.01 0.00 1500000/69615632 Point::Point(float, float, float) [43] ----------------------------------------------- 0.02 0.14 3126310/3126310 LambertianMaterial::Shade(Ray&, Scene&) const [6] [56] 0.1 0.02 0.14 3126310 Ray::GetHitPoint() const [56] 0.02 0.06 3126310/53982251 operator*(float, Vector const&) [32] 0.04 0.02 3126310/54482247 Point::operator+(Vector const&) const [35] ----------------------------------------------- 0.10 0.03 1/1 Scene::SetGeometry(char*) [16] [57] 0.1 0.10 0.03 1 glmVertexNormals [57] 0.02 0.00 750000/750000 glmDot(float*, float*) [80] 0.01 0.00 124926/374926 glmNormalize(float*) [70] ----------------------------------------------- 0.13 0.00 25427968/25427968 display() [1] [58] 0.1 0.13 0.00 25427968 RGBColor::Blue() const [58] ----------------------------------------------- 0.01 0.00 3126310/28554278 LambertianMaterial::Shade(Ray&, Scene&) const [6] 0.11 0.00 25427968/28554278 Scene::TraceRay(Ray&) [2] [59] 0.1 0.12 0.00 28554278 Ray::WasIntersection() const [59] ----------------------------------------------- 0.03 0.09 1/1 Scene::SetGeometry(char*) [16] [60] 0.1 0.03 0.09 1 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [60] 0.00 0.05 250000/250000 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [69] 0.01 0.01 750000/750000 Point::operator+(Point const&) const [87] 0.01 0.00 750000/750000 Point::Point(float*) [91] 0.01 0.00 750000/69615632 Point::Point(float, float, float) [43] 0.00 0.01 750000/750000 Point::operator*(float) const [100] 0.00 0.00 250000/250000 Group::Add(Object*) [118] ----------------------------------------------- 0.06 0.03 1/1 Scene::SetGeometry(char*) [16] [61] 0.0 0.06 0.03 1 glmFacetNormals [61] 0.03 0.00 250000/374926 glmNormalize(float*) [70] 0.00 0.00 250000/250000 glmCross(float*, float*, float*) [117] ----------------------------------------------- 0.00 0.00 1/28085639 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [105] 0.00 0.00 250000/28085639 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [69] 0.01 0.00 2407670/28085639 BBox::BBox() [72] 0.06 0.00 25427968/28085639 Ray::Ray() [40] [62] 0.0 0.07 0.00 28085639 Point::Point() [62] ----------------------------------------------- 0.04 0.03 3126310/3126310 LambertianMaterial::Shade(Ray&, Scene&) const [6] [63] 0.0 0.04 0.03 3126310 Scene::GetLight(int) [63] 0.03 0.00 3126310/3126310 Array1D::operator[](int) [77] ----------------------------------------------- [64] 0.0 0.07 0.00 sqrt [64] ----------------------------------------------- 0.00 0.06 1/1 Scene::SetGeometry(char*) [16] [65] 0.0 0.00 0.06 1 glmReadOBJ [65] 0.05 0.00 1/1 glmFirstPass(_GLMmodel*, __sFILE64*) [68] 0.01 0.00 1/1 glmSecondPass(_GLMmodel*, __sFILE64*) [93] ----------------------------------------------- 0.02 0.03 3126310/3126310 LambertianMaterial::Shade(Ray&, Scene&) const [6] [66] 0.0 0.02 0.03 3126310 Triangle::ComputeNormal(Ray&) const [66] 0.03 0.00 3126310/88147688 Vector::operator=(Vector const&) [36] ----------------------------------------------- 0.05 0.00 25427968/25427968 display() [1] [67] 0.0 0.05 0.00 25427968 RGBColor::Green() const [67] ----------------------------------------------- 0.05 0.00 1/1 glmReadOBJ [65] [68] 0.0 0.05 0.00 1 glmFirstPass(_GLMmodel*, __sFILE64*) [68] 0.00 0.00 1/1 glmAddGroup(_GLMmodel*, char*) [151] ----------------------------------------------- 0.00 0.05 250000/250000 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [60] [69] 0.0 0.00 0.05 250000 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [69] 0.02 0.00 250000/28804283 Vector::Normalize() [26] 0.01 0.00 250000/61442355 Vector::Cross(Vector const&) const [23] 0.01 0.00 500000/42153645 Point::operator-(Point const&) const [38] 0.01 0.00 750000/88147688 Vector::operator=(Vector const&) [36] 0.00 0.00 750000/121815417 Vector::Vector() [50] 0.00 0.00 250000/28085639 Point::Point() [62] 0.00 0.00 250000/250000 Primitive::Primitive(Material*) [120] ----------------------------------------------- 0.01 0.00 124926/374926 glmVertexNormals [57] 0.03 0.00 250000/374926 glmFacetNormals [61] [70] 0.0 0.04 0.00 374926 glmNormalize(float*) [70] ----------------------------------------------- 0.02 0.02 2584371/2584371 LambertianMaterial::Shade(Ray&, Scene&) const [6] [71] 0.0 0.02 0.02 2584371 RGBColor::operator*(float) const [71] 0.02 0.00 2584371/34264962 RGBColor::RGBColor(float, float, float) [47] ----------------------------------------------- 0.00 0.00 203836/1203835 NaiveBVH::Sort(BBox*, int, int, Object**, int) [20] 0.00 0.01 249999/1203835 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 0.00 0.01 250000/1203835 Triangle::ComputerBoundingBox() [51] 0.00 0.01 500000/1203835 NaiveBVH::NaiveBVH() [88] [72] 0.0 0.01 0.03 1203835 BBox::BBox() [72] 0.02 0.00 2407670/69615632 Point::Point(float, float, float) [43] 0.01 0.00 2407670/28085639 Point::Point() [62] ----------------------------------------------- [73] 0.0 0.04 0.00 Triangle::~Triangle() [73] ----------------------------------------------- 0.01 0.02 3126310/3126310 LambertianMaterial::Shade(Ray&, Scene&) const [6] [74] 0.0 0.01 0.02 3126310 RGBColor::operator*(RGBColor const&) const [74] 0.02 0.00 3126310/34264962 RGBColor::RGBColor(float, float, float) [47] ----------------------------------------------- 0.00 0.00 1/3126313 Light::Light(Point const&, RGBColor const&) [107] 0.00 0.00 2/3126313 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [105] 0.03 0.00 3126310/3126313 Ray::Ray(Point const&, Vector const&, unsigned char) [44] [75] 0.0 0.03 0.00 3126313 Point::Point(Point const&) [75] ----------------------------------------------- 0.00 0.00 1/3126311 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [105] 0.03 0.00 3126310/3126311 Ray::Ray(Point const&, Vector const&, unsigned char) [44] [76] 0.0 0.03 0.00 3126311 Vector::Vector(Vector const&) [76] ----------------------------------------------- 0.03 0.00 3126310/3126310 Scene::GetLight(int) [63] [77] 0.0 0.03 0.00 3126310 Array1D::operator[](int) [77] ----------------------------------------------- [78] 0.0 0.03 0.00 std::ostream::flush() [78] ----------------------------------------------- [79] 0.0 0.03 0.00 Ray::PrintToScreen() [79] ----------------------------------------------- 0.02 0.00 750000/750000 glmVertexNormals [57] [80] 0.0 0.02 0.00 750000 glmDot(float*, float*) [80] ----------------------------------------------- 0.01 0.01 1/1 Scene::SetGeometry(char*) [16] [81] 0.0 0.01 0.01 1 glmUnitize [81] 0.01 0.00 6/6 glmAbs(float) [92] 0.00 0.00 2/2 glmMax(float, float) [148] ----------------------------------------------- [82] 0.0 0.02 0.00 _Unwind_SjLj_Register [82] ----------------------------------------------- [83] 0.0 0.02 0.00 _Unwind_SjLj_Unregister [83] ----------------------------------------------- [84] 0.0 0.02 0.00 Ray::Ray(Point const&, Vector const&, unsigned char) [84] ----------------------------------------------- [85] 0.0 0.02 0.00 std::__timepunct::__timepunct(std::__timepunct_cache*, unsigned int) [85] ----------------------------------------------- [86] 0.0 0.02 0.00 operator new(unsigned int) [86] ----------------------------------------------- 0.01 0.01 750000/750000 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [60] [87] 0.0 0.01 0.01 750000 Point::operator+(Point const&) const [87] 0.01 0.00 750000/69615632 Point::Point(float, float, float) [43] ----------------------------------------------- 0.00 0.00 1/500000 Group::PreProcess() [17] 0.00 0.01 499999/500000 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] [88] 0.0 0.00 0.01 500000 NaiveBVH::NaiveBVH() [88] 0.00 0.01 500000/1203835 BBox::BBox() [72] ----------------------------------------------- 0.01 0.00 3126310/3126310 LambertianMaterial::Shade(Ray&, Scene&) const [6] [89] 0.0 0.01 0.00 3126310 Light::GetPosition() [89] ----------------------------------------------- 0.00 0.00 1/784655 NaiveBVH::~NaiveBVH() [108] 0.00 0.00 249999/784655 NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [18] 0.00 0.00 250000/784655 Group::ComputerBBoxForEachObject(Object**) [48] 0.00 0.00 284655/784655 NaiveBVH::Sort(BBox*, int, int, Object**, int) [20] [90] 0.0 0.01 0.00 784655 BBox::~BBox() [90] ----------------------------------------------- 0.01 0.00 750000/750000 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [60] [91] 0.0 0.01 0.00 750000 Point::Point(float*) [91] ----------------------------------------------- 0.01 0.00 6/6 glmUnitize [81] [92] 0.0 0.01 0.00 6 glmAbs(float) [92] ----------------------------------------------- 0.01 0.00 1/1 glmReadOBJ [65] [93] 0.0 0.01 0.00 1 glmSecondPass(_GLMmodel*, __sFILE64*) [93] ----------------------------------------------- [94] 0.0 0.01 0.00 global constructors keyed to _ZN6RandomC2Em [94] 0.00 0.00 1/2 __static_initialization_and_destruction_0(int, int) [128] ----------------------------------------------- [95] 0.0 0.01 0.00 ThinLensCamera::GenerateRay(float, float) [95] ----------------------------------------------- [96] 0.0 0.01 0.00 cos [96] ----------------------------------------------- [97] 0.0 0.01 0.00 sin [97] ----------------------------------------------- [98] 0.0 0.01 0.00 sscanf [98] ----------------------------------------------- [99] 0.0 0.01 0.00 strstr [99] ----------------------------------------------- 0.00 0.01 750000/750000 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [60] [100] 0.0 0.00 0.01 750000 Point::operator*(float) const [100] 0.01 0.00 750000/69615632 Point::Point(float, float, float) [43] ----------------------------------------------- 0.01 0.00 1/1 Scene::SetGeometry(char*) [16] [101] 0.0 0.01 0.00 1 LambertianMaterial::LambertianMaterial(RGBColor const&) [101] 0.00 0.00 1/22301660 RGBColor::RGBColor(RGBColor const&) [53] 0.00 0.00 1/1 Material::Material() [163] ----------------------------------------------- [102] 0.0 0.01 0.00 Ray::CheckHit(float, Primitive*) [102] ----------------------------------------------- [103] 0.0 0.01 0.00 Random::dRandom() [103] ----------------------------------------------- [104] 0.0 0.01 0.00 Random::sRandom() [104] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [16] [105] 0.0 0.00 0.00 1 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [105] 0.00 0.00 1/1 ThinLensCamera::RecomputeCameraParameters() [106] 0.00 0.00 2/3126313 Point::Point(Point const&) [75] 0.00 0.00 8/121815417 Vector::Vector() [50] 0.00 0.00 1/3126311 Vector::Vector(Vector const&) [76] 0.00 0.00 1/28085639 Point::Point() [62] 0.00 0.00 1/1 Random::Random(unsigned long) [157] ----------------------------------------------- 0.00 0.00 1/1 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [105] [106] 0.0 0.00 0.00 1 ThinLensCamera::RecomputeCameraParameters() [106] 0.00 0.00 5/28804283 Vector::Normalize() [26] 0.00 0.00 5/53982251 operator*(float, Vector const&) [32] 0.00 0.00 9/88147688 Vector::operator=(Vector const&) [36] 0.00 0.00 2/61442355 Vector::Cross(Vector const&) const [23] 0.00 0.00 2/50855938 Vector::operator+(Vector const&) const [33] 0.00 0.00 2/42153645 Point::operator-(Point const&) const [38] 0.00 0.00 1/54482247 Point::operator+(Vector const&) const [35] 0.00 0.00 1/155694124 Vector::operator*(float) const [22] 0.00 0.00 2/2 Vector::operator*=(float) [149] 0.00 0.00 1/1 Vector::Length() const [165] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [16] [107] 0.0 0.00 0.00 1 Light::Light(Point const&, RGBColor const&) [107] 0.00 0.00 1/3126313 Point::Point(Point const&) [75] 0.00 0.00 1/22301660 RGBColor::RGBColor(RGBColor const&) [53] ----------------------------------------------- 0.00 0.00 1/1 Group::PreProcess() [17] [108] 0.0 0.00 0.00 1 NaiveBVH::~NaiveBVH() [108] 0.00 0.00 1/784655 BBox::~BBox() [90] ----------------------------------------------- 0.00 0.00 1/1 main [15] [109] 0.0 0.00 0.00 1 Scene::Scene() [109] 0.00 0.00 1/34264962 RGBColor::RGBColor(float, float, float) [47] 0.00 0.00 1/1 Array1D::Array1D() [159] 0.00 0.00 1/1 RGBColor::RGBColor() [164] 0.00 0.00 1/1 Array1D::Array1D() [162] ----------------------------------------------- 0.00 0.00 3126310/3126310 LambertianMaterial::Shade(Ray&, Scene&) const [6] [113] 0.0 0.00 0.00 3126310 Scene::GetNumLights() [113] ----------------------------------------------- 0.00 0.00 3126310/3126310 Scene::TraceRay(Ray&) [2] [114] 0.0 0.00 0.00 3126310 Primitive::GetMaterial() [114] ----------------------------------------------- 0.00 0.00 2584371/2584371 LambertianMaterial::Shade(Ray&, Scene&) const [6] [115] 0.0 0.00 0.00 2584371 Light::GetColor() [115] ----------------------------------------------- 0.00 0.00 1/250001 Group::Group() [153] 0.00 0.00 250000/250001 Primitive::Primitive(Material*) [120] [116] 0.0 0.00 0.00 250001 Object::Object() [116] ----------------------------------------------- 0.00 0.00 250000/250000 glmFacetNormals [61] [117] 0.0 0.00 0.00 250000 glmCross(float*, float*, float*) [117] ----------------------------------------------- 0.00 0.00 250000/250000 DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [60] [118] 0.0 0.00 0.00 250000 Group::Add(Object*) [118] 0.00 0.00 250000/250000 Array1D::Add(Object* const&) [119] ----------------------------------------------- 0.00 0.00 250000/250000 Group::Add(Object*) [118] [119] 0.0 0.00 0.00 250000 Array1D::Add(Object* const&) [119] ----------------------------------------------- 0.00 0.00 250000/250000 Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [69] [120] 0.0 0.00 0.00 250000 Primitive::Primitive(Material*) [120] 0.00 0.00 250000/250001 Object::Object() [116] ----------------------------------------------- 0.00 0.00 2/102 OpenGLMain(int, char**) [150] 0.00 0.00 3/102 reshape(int, int) [263] 0.00 0.00 97/102 display() [1] [121] 0.0 0.00 0.00 102 Scene::GetWidth() [121] 0.00 0.00 102/102 ThinLensCamera::GetScreenWidth() const [123] ----------------------------------------------- 0.00 0.00 2/102 OpenGLMain(int, char**) [150] 0.00 0.00 3/102 reshape(int, int) [263] 0.00 0.00 97/102 display() [1] [122] 0.0 0.00 0.00 102 Scene::GetHeight() [122] 0.00 0.00 102/102 ThinLensCamera::GetScreenHeight() const [124] ----------------------------------------------- 0.00 0.00 102/102 Scene::GetWidth() [121] [123] 0.0 0.00 0.00 102 ThinLensCamera::GetScreenWidth() const [123] ----------------------------------------------- 0.00 0.00 102/102 Scene::GetHeight() [122] [124] 0.0 0.00 0.00 102 ThinLensCamera::GetScreenHeight() const [124] ----------------------------------------------- 0.00 0.00 97/97 display() [1] [125] 0.0 0.00 0.00 97 DisplayTimer() [125] ----------------------------------------------- 0.00 0.00 97/97 display() [1] [126] 0.0 0.00 0.00 97 Scene::GetCamera() [126] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN21ConstantColorMaterialC2ERK8RGBColor [209] 0.00 0.00 1/2 global destructors keyed to _ZN21ConstantColorMaterialC2ERK8RGBColor [188] [127] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [127] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN6RandomC2Em [94] 0.00 0.00 1/2 global destructors keyed to _ZN6RandomC2Em [195] [128] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [128] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN13InfinitePlaneC2EP8MaterialRK6VectorRK5Point [204] 0.00 0.00 1/2 global destructors keyed to _ZN13InfinitePlaneC2EP8MaterialRK6VectorRK5Point [183] [129] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [129] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN5GroupC2Ev [212] 0.00 0.00 1/2 global destructors keyed to _ZN5GroupC2Ev [191] [130] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [130] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN3RayC2Ev [211] 0.00 0.00 1/2 global destructors keyed to _ZN3RayC2Ev [190] [131] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [131] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN6SphereC2EP8MaterialRK5Pointf [216] 0.00 0.00 1/2 global destructors keyed to _ZN6SphereC2EP8MaterialRK5Pointf [196] [132] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [132] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN6CameraC2ERK5PointS2_RK6Vectorfii [215] 0.00 0.00 1/2 global destructors keyed to _ZN6CameraC2ERK5PointS2_RK6Vectorfii [194] [133] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [133] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN8TriangleC2EP8MaterialRK5PointS4_S4_ [219] 0.00 0.00 1/2 global destructors keyed to _ZN8TriangleC2EP8MaterialRK5PointS4_S4_ [199] [134] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [134] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN5LightC2EP9__sFILE64P5Scene [213] 0.00 0.00 1/2 global destructors keyed to _ZN5LightC2EP9__sFILE64P5Scene [192] [135] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [135] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN18RefractiveMaterialC2Ef [208] 0.00 0.00 1/2 global destructors keyed to _ZN18RefractiveMaterialC2Ef [187] [136] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [136] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN8NaiveBVH14BuildHierrachyEP4BBoxiiPP6Objecti [218] 0.00 0.00 1/2 global destructors keyed to _ZN8NaiveBVH14BuildHierrachyEP4BBoxiiPP6Objecti [198] [137] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [137] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN5SceneC2Ev [214] 0.00 0.00 1/2 global destructors keyed to _ZN5SceneC2Ev [193] [138] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [138] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _Z9ShootRaysR5ImageP5Scene [203] 0.00 0.00 1/2 global destructors keyed to _Z9ShootRaysR5ImageP5Scene [182] [139] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [139] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN9RayPacketC2Ev [220] 0.00 0.00 1/2 global destructors keyed to _ZN9RayPacketC2Ev [200] [140] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [140] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to myScene [223] 0.00 0.00 1/2 global destructors keyed to myScene [201] [141] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [141] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN18ReflectiveMaterialC2ERK8RGBColor [207] 0.00 0.00 1/2 global destructors keyed to _ZN18ReflectiveMaterialC2ERK8RGBColor [186] [142] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [142] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN14ThinLensCameraC2EffRK5PointS2_RK6Vectorfii [205] 0.00 0.00 1/2 global destructors keyed to _ZN14ThinLensCameraC2EffRK5PointS2_RK6Vectorfii [184] [143] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [143] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN18LambertianMaterialC2ERK8RGBColor [206] 0.00 0.00 1/2 global destructors keyed to _ZN18LambertianMaterialC2ERK8RGBColor [185] [144] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [144] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to texData [224] 0.00 0.00 1/2 global destructors keyed to texData [202] [145] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [145] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN6VectorC2ERK5Point [217] 0.00 0.00 1/2 global destructors keyed to _ZN6VectorC2ERK5Point [197] [146] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [146] ----------------------------------------------- 0.00 0.00 1/2 global constructors keyed to _ZN28PathtracedLambertianMaterialC2ERK8RGBColor [210] 0.00 0.00 1/2 global destructors keyed to _ZN28PathtracedLambertianMaterialC2ERK8RGBColor [189] [147] 0.0 0.00 0.00 2 __static_initialization_and_destruction_0(int, int) [147] ----------------------------------------------- 0.00 0.00 2/2 glmUnitize [81] [148] 0.0 0.00 0.00 2 glmMax(float, float) [148] ----------------------------------------------- 0.00 0.00 2/2 ThinLensCamera::RecomputeCameraParameters() [106] [149] 0.0 0.00 0.00 2 Vector::operator*=(float) [149] ----------------------------------------------- 0.00 0.00 1/1 main [15] [150] 0.0 0.00 0.00 1 OpenGLMain(int, char**) [150] 0.00 0.00 2/102 Scene::GetHeight() [122] 0.00 0.00 2/102 Scene::GetWidth() [121] ----------------------------------------------- 0.00 0.00 1/1 glmFirstPass(_GLMmodel*, __sFILE64*) [68] [151] 0.0 0.00 0.00 1 glmAddGroup(_GLMmodel*, char*) [151] 0.00 0.00 1/1 glmFindGroup(_GLMmodel*, char*) [152] ----------------------------------------------- 0.00 0.00 1/1 glmAddGroup(_GLMmodel*, char*) [151] [152] 0.0 0.00 0.00 1 glmFindGroup(_GLMmodel*, char*) [152] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [16] [153] 0.0 0.00 0.00 1 Group::Group() [153] 0.00 0.00 1/250001 Object::Object() [116] 0.00 0.00 1/1 Array1D::Array1D() [161] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [16] [154] 0.0 0.00 0.00 1 Scene::SetGeometry(Object*) [154] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [16] [155] 0.0 0.00 0.00 1 Scene::AddLight(Light*) [155] 0.00 0.00 1/1 Array1D::Add(Light* const&) [158] ----------------------------------------------- 0.00 0.00 1/1 Scene::SetGeometry(char*) [16] [156] 0.0 0.00 0.00 1 Scene::SetCamera(ThinLensCamera*) [156] ----------------------------------------------- 0.00 0.00 1/1 ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [105] [157] 0.0 0.00 0.00 1 Random::Random(unsigned long) [157] ----------------------------------------------- 0.00 0.00 1/1 Scene::AddLight(Light*) [155] [158] 0.0 0.00 0.00 1 Array1D::Add(Light* const&) [158] ----------------------------------------------- 0.00 0.00 1/1 Scene::Scene() [109] [159] 0.0 0.00 0.00 1 Array1D::Array1D() [159] ----------------------------------------------- 0.00 0.00 1/1 Group::PreProcess() [17] [160] 0.0 0.00 0.00 1 Array1D::GetData() [160] ----------------------------------------------- 0.00 0.00 1/1 Group::Group() [153] [161] 0.0 0.00 0.00 1 Array1D::Array1D() [161] ----------------------------------------------- 0.00 0.00 1/1 Scene::Scene() [109] [162] 0.0 0.00 0.00 1 Array1D::Array1D() [162] ----------------------------------------------- 0.00 0.00 1/1 LambertianMaterial::LambertianMaterial(RGBColor const&) [101] [163] 0.0 0.00 0.00 1 Material::Material() [163] ----------------------------------------------- 0.00 0.00 1/1 Scene::Scene() [109] [164] 0.0 0.00 0.00 1 RGBColor::RGBColor() [164] ----------------------------------------------- 0.00 0.00 1/1 ThinLensCamera::RecomputeCameraParameters() [106] [165] 0.0 0.00 0.00 1 Vector::Length() const [165] ----------------------------------------------- This table describes the call tree of the program, and was sorted by the total amount of time spent in each function and its children. Each entry in this table consists of several lines. The line with the index number at the left hand margin lists the current function. The lines above it list the functions that called this function, and the lines below it list the functions this one called. This line lists: index A unique number given to each element of the table. Index numbers are sorted numerically. The index number is printed next to every function name so it is easier to look up where the function in the table. % time This is the percentage of the `total' time that was spent in this function and its children. Note that due to different viewpoints, functions excluded by options, etc, these numbers will NOT add up to 100%. self This is the total amount of time spent in this function. children This is the total amount of time propagated into this function by its children. called This is the number of times the function was called. If the function called itself recursively, the number only includes non-recursive calls, and is followed by a `+' and the number of recursive calls. name The name of the current function. The index number is printed after it. If the function is a member of a cycle, the cycle number is printed between the function's name and the index number. For the function's parents, the fields have the following meanings: self This is the amount of time that was propagated directly from the function into this parent. children This is the amount of time that was propagated from the function's children into this parent. called This is the number of times this parent called the function `/' the total number of times the function was called. Recursive calls to the function are not included in the number after the `/'. name This is the name of the parent. The parent's index number is printed after it. If the parent is a member of a cycle, the cycle number is printed between the name and the index number. If the parents of the function cannot be determined, the word `' is printed in the `name' field, and all the other fields are blank. For the function's children, the fields have the following meanings: self This is the amount of time that was propagated directly from the child into the function. children This is the amount of time that was propagated from the child's children to the function. called This is the number of times the function called this child `/' the total number of times the child was called. Recursive calls by the child are not listed in the number after the `/'. name This is the name of the child. The child's index number is printed after it. If the child is a member of a cycle, the cycle number is printed between the name and the index number. If there are any cycles (circles) in the call graph, there is an entry for the cycle-as-a-whole. This entry shows who called the cycle (as parents) and the members of the cycle (as children.) The `+' recursive calls entry shows the number of function calls that were internal to the cycle, and the calls entry for each member shows, for that member, how many times it was called from other members of the cycle. Index by function name [94] global constructors keyed to _ZN6RandomC2Em (Random.cpp) [72] BBox::BBox() [53] RGBColor::RGBColor(RGBColor const&) [82] _Unwind_SjLj_Register [90] BBox::~BBox() [47] RGBColor::RGBColor(float, float, float) [83] _Unwind_SjLj_Unregister [29] BBox::operator=(BBox const&) [164] RGBColor::RGBColor() [150] OpenGLMain(int, char**) [17] Group::PreProcess() [46] RGBColor::operator*=(float) [151] glmAddGroup(_GLMmodel*, char*) [48] Group::ComputerBBoxForEachObject(Object**) [45] RGBColor::operator+=(RGBColor const&) [125] DisplayTimer() [118] Group::Add(Object*) [51] Triangle::ComputerBoundingBox() [152] glmFindGroup(_GLMmodel*, char*) [3] Group::Intersect(Ray&) [12] Triangle::Intersect(Ray&) [68] glmFirstPass(_GLMmodel*, __sFILE64*) (glm.cpp) [153] Group::Group() [69] Triangle::Triangle(Material*, Point const&, Point const&, Point const&) [70] glmNormalize(float*) (glm.cpp) [89] Light::GetPosition() [73] Triangle::~Triangle() [93] glmSecondPass(_GLMmodel*, __sFILE64*) (glm.cpp) [115] Light::GetColor() [114] Primitive::GetMaterial() [31] ConvertToUnsigned(float) [107] Light::Light(Point const&, RGBColor const&) [120] Primitive::Primitive(Material*) [145] __static_initialization_and_destruction_0(int, int) (OpenGLInterface.cpp) [91] Point::Point(float*) [123] ThinLensCamera::GetScreenWidth() const [139] __static_initialization_and_destruction_0(int, int) (BatchModeInterface.cpp) [75] Point::Point(Point const&) [124] ThinLensCamera::GetScreenHeight() const [131] __static_initialization_and_destruction_0(int, int) (Ray.cpp) [43] Point::Point(float, float, float) [6] LambertianMaterial::Shade(Ray&, Scene&) const [146] __static_initialization_and_destruction_0(int, int) (Vector.cpp) [62] Point::Point() [56] Ray::GetHitPoint() const [128] __static_initialization_and_destruction_0(int, int) (Random.cpp) [154] Scene::SetGeometry(Object*) [59] Ray::WasIntersection() const [130] __static_initialization_and_destruction_0(int, int) (Group.cpp) [16] Scene::SetGeometry(char*) [49] BBox::GetMax() const [129] __static_initialization_and_destruction_0(int, int) (InfinitePlane.cpp) [113] Scene::GetNumLights() [42] BBox::GetMin() const [132] __static_initialization_and_destruction_0(int, int) (Sphere.cpp) [8] Scene::TraceShadowRay(Ray&) [41] Point::GetElement(int) const [141] __static_initialization_and_destruction_0(int, int) (raytracer.cpp) [155] Scene::AddLight(Light*) [7] Point::X() const [134] __static_initialization_and_destruction_0(int, int) (Triangle.cpp) [63] Scene::GetLight(int) [9] Point::Y() const [143] __static_initialization_and_destruction_0(int, int) (ThinLensCamera.cpp) [121] Scene::GetWidth() [11] Point::Z() const [137] __static_initialization_and_destruction_0(int, int) (NaiveBVH.cpp) [2] Scene::TraceRay(Ray&) [38] Point::operator-(Point const&) const [127] __static_initialization_and_destruction_0(int, int) (ConstantColorMaterial.cpp) [126] Scene::GetCamera() [100] Point::operator*(float) const [144] __static_initialization_and_destruction_0(int, int) (LambertianMaterial.cpp) [122] Scene::GetHeight() [35] Point::operator+(Vector const&) const [136] __static_initialization_and_destruction_0(int, int) (RefractiveMaterial.cpp) [156] Scene::SetCamera(ThinLensCamera*) [87] Point::operator+(Point const&) const [142] __static_initialization_and_destruction_0(int, int) (ReflectiveMaterial.cpp) [109] Scene::Scene() [14] Vector::X() const [147] __static_initialization_and_destruction_0(int, int) (PathtracedLambertianMaterial.cpp) [116] Object::Object() [13] Vector::Y() const [133] __static_initialization_and_destruction_0(int, int) (Camera.cpp) [103] Random::dRandom() [19] Vector::Z() const [138] __static_initialization_and_destruction_0(int, int) (Scene.cpp) [28] Random::fRandom() [30] Vector::Dot(Vector const&) const [140] __static_initialization_and_destruction_0(int, int) (RayPacket.cpp) [104] Random::sRandom() [23] Vector::Cross(Vector const&) const [135] __static_initialization_and_destruction_0(int, int) (Light.cpp) [157] Random::Random(unsigned long) [165] Vector::Length() const [92] glmAbs(float) (glm.cpp) [26] Vector::Normalize() [22] Vector::operator*(float) const [80] glmDot(float*, float*) (glm.cpp) [76] Vector::Vector(Vector const&) [33] Vector::operator+(Vector const&) const [148] glmMax(float, float) (glm.cpp) [24] Vector::Vector(float, float, float) [52] RGBColor::Red() const [60] DrawObj(_GLMmodel*, unsigned int, Group*, Material*) [50] Vector::Vector() [58] RGBColor::Blue() const [1] display() [36] Vector::operator=(Vector const&) [67] RGBColor::Green() const [117] glmCross(float*, float*, float*) (glm.cpp) [149] Vector::operator*=(float) [74] RGBColor::operator*(RGBColor const&) const [10] ThinLensCamera::GenerateRay(Ray&, float, float) [158] Array1D::Add(Light* const&) [71] RGBColor::operator*(float) const [95] ThinLensCamera::GenerateRay(float, float) [159] Array1D::Array1D() [66] Triangle::ComputeNormal(Ray&) const [106] ThinLensCamera::RecomputeCameraParameters() [77] Array1D::operator[](int) [78] std::ostream::flush() [105] ThinLensCamera::ThinLensCamera(float, float, Point const&, Point const&, Vector const&, float, int, int) [119] Array1D::Add(Object* const&) [85] std::__timepunct::__timepunct(std::__timepunct_cache*, unsigned int) [101] LambertianMaterial::LambertianMaterial(RGBColor const&) [160] Array1D::GetData() [32] operator*(float, Vector const&) [79] Ray::PrintToScreen() [161] Array1D::Array1D() [86] operator new(unsigned int) [21] Ray::RecomputeParameters() [162] Array1D::Array1D() [96] cos [27] Ray::NormalizeRayDirection() [163] Material::Material() [61] glmFacetNormals [102] Ray::CheckHit(float, Primitive*) [4] NaiveBVH::IntersectBVH(Ray&) [65] glmReadOBJ [54] Ray::CheckHit(float, Primitive*, Vector const&) [34] NaiveBVH::IntersectBVH(RayPacket&) [81] glmUnitize [44] Ray::Ray(Point const&, Vector const&, unsigned char) [5] NaiveBVH::IntersectBBox(Ray&, Point const*) [57] glmVertexNormals [40] Ray::Ray() [39] NaiveBVH::IntersectBBox(RayPacket&, Point const*) [97] sin [84] Ray::Ray(Point const&, Vector const&, unsigned char) [18] NaiveBVH::BuildHierrachy(BBox*, int, int, Object**, int) [64] sqrt [55] BBox::Expand(Point const&) [20] NaiveBVH::Sort(BBox*, int, int, Object**, int) [98] sscanf [37] BBox::Expand(BBox const&) [88] NaiveBVH::NaiveBVH() [99] strstr [25] BBox::GetPoints() [108] NaiveBVH::~NaiveBVH()