ProtoTracer  1.0
Real-time 3D rendering and animation engine
Loading...
Searching...
No Matches
Crash.h
Go to the documentation of this file.
1#pragma once
2
3#include "../Render/Object3D.h"
4#include "../Render/ObjectDeformer.h"
5#include "../Flash/CrashObjs.h"
6#include "Animation.h"
7
8class Crash : public Animation {
9private:
12 Object3D protoDRV1Obj = Object3D(protoDRV1String, 150, 150);
13 Object3D initObj = Object3D(initString, 100, 100);
14 Object3D runningKernelObj = Object3D(runningKernelString, 260, 260);
15 Object3D loadingModulesObj = Object3D(loadingModulesString, 260, 260);
16 Object3D doneObj = Object3D(doneBootString, 200, 200);
17 Object3D cursorObj = Object3D(cursorString, 10, 10);
18
19 Object3D planeObj = Object3D(planeString, 150, 250);
21 const int frames = 1260;
22
23public:
25 lights[0].Set(Vector3D(1000, 0, 0), Vector3D(255, 0, 0), 1000.0f, 0.75f, 0.25f);//Set lights position, color intensity, falloff distance, and falloff curvature
26 lights[1].Set(Vector3D(0, 1000, 0), Vector3D(0, 255, 0), 1000.0f, 0.75f, 0.25f);
27 lights[2].Set(Vector3D(0, 0, 1000), Vector3D(0, 0, 255), 1000.0f, 0.75f, 0.25f);
28 lights[3].Set(Vector3D(-2000, 0, 0), Vector3D(120, 0, 120), 1000.0f, 0.75f, 0.25f);
29 lights[4].Set(Vector3D(0, -1000, 0), Vector3D(120, 120, 0), 1000.0f, 0.75f, 0.25f);
30 lights[5].Set(Vector3D(0, 0, -1000), Vector3D(0, 120, 120), 1000.0f, 0.75f, 0.25f);
31
33 objects[1] = &initObj;
36 objects[4] = &doneObj;
37 objects[5] = &cursorObj;
38 objects[6] = &planeObj;
39
40 scene = new Scene(objects, lights, 7, 6);
41 }
42
43 void FadeIn(float stepRatio){
44 if (fade < 1.0f){
45 fade += stepRatio;
46
47 float ratio = Mathematics::CosineInterpolation(0.0f, 1.0f, fade);
48 objects[0]->Scale(Vector3D(ratio, ratio, ratio), Vector3D(-40, 130, 0));
49 }
50 }
51
52 void FadeOut(float stepRatio){
53 if (fade > 0.0f){
54 fade -= stepRatio;
55
56 float ratio = Mathematics::CosineInterpolation(0.0f, 1.0f, fade);
57 objects[0]->Scale(Vector3D(ratio, ratio, ratio), Vector3D(-40, 130, 0));
58 }
59 }
60
61 void Update(float ratio){
62 ratio = Mathematics::Constrain(ratio, 0.0f, 1.0f);
63 int i = (int)(ratio * (float)frames);
64
72 }
73};
Definition Crash.h:8
const int frames
Definition Crash.h:21
Object3D planeObj
Definition Crash.h:19
Object3D protoDRV1Obj
Definition Crash.h:12
Object3D runningKernelObj
Definition Crash.h:14
Object3D loadingModulesObj
Definition Crash.h:15
void FadeOut(float stepRatio)
Definition Crash.h:52
Object3D cursorObj
Definition Crash.h:17
Light lights[6]
Definition Crash.h:10
Object3D doneObj
Definition Crash.h:16
Crash()
Definition Crash.h:24
Object3D initObj
Definition Crash.h:13
void Update(float ratio)
Definition Crash.h:61
void FadeIn(float stepRatio)
Definition Crash.h:43
Object3D * objects[7]
Definition Crash.h:11
ObjectDeformer planeDeformer
Definition Crash.h:20
Represents a light source with position, intensity, and falloff properties.
Definition Light.h:22
void Set(Vector3D p, Vector3D intensity, float falloff, float a, float b)
Sets the light's properties.
Definition Light.cpp:11
static T Constrain(T value, T minimum, T maximum)
Constrains a value between minimum and maximum.
static float CosineInterpolation(float beg, float fin, float ratio)
Applies a cosine-based interpolation between two values.
Represents a 3D object with geometry, material, and transformation data.
Definition Object3D.h:28
void ResetVertices()
Resets the object's vertices to their original positions.
Definition Object3D.cpp:54
Applies geometric transformations to one or more 3D objects.
Manages a collection of 3D objects and applies optional screen-space effects.
Definition Scene.h:25
Represents a 3D vector (X, Y, Z) and provides methods for vector arithmetic.
Definition Vector3D.h:26