Path Tracer
InterfaceCreation.h
Go to the documentation of this file.
1 #ifndef DEF_INTERFACECREATION
2 #define DEF_INTERFACECREATION
3 
4 #include "DiffuseMaterial.h"
5 #include "RefractiveMaterial.h"
6 #include "SpecularMaterial.h"
7 
8 #include "Triangle.h"
9 #include "Sphere.h"
10 
165 const std::string POSITIVE_DOUBLE_INFO = "(positive number)";
166 const std::string POSITIVE_INT_INFO = "(positive integer)";
167 const std::string BOOL_INFO = "(True=T=true=t / False=F=false=f)";
168 
169 std::string getStringFromUser(std::string question = "", std::string prompt = PROMPT);
170 char getLowerCaseCharFromUser(std::string question = "", std::string prompt = PROMPT);
171 int getIntFromUser(std::string question = "", std::string prompt = PROMPT);
172 unsigned int getUnsignedIntFromUser(std::string question = "", std::string prompt = PROMPT);
173 double getDoubleFromUser(std::string question = "", std::string prompt = PROMPT);
174 double getPositiveDoubleFromUser(std::string question = "", std::string prompt = PROMPT);
175 bool getBoolFromUser(std::string question = "", std::string prompt = PROMPT);
176 DoubleVec3D getXYZDoubleVec3DFromUser(std::string question = "", std::string prompt = PROMPT);
177 DoubleVec3D getRGBDoubleVec3DFromUser(std::string question = "", std::string prompt = PROMPT);
178 
179 Material* createDiffuseMaterial(const DoubleVec3D& emittance);
181 Material* createSpecularMaterial(const DoubleVec3D& emittance);
183 
184 Object3D* createSphere(Material* material);
185 Object3D* createTriangle(Material* material);
187 
188 void to_json(json& j, const Material& mat);
190 void to_json(json& j, const Object3D& obj);
192 
193 #endif
Defines the DiffuseMaterial class.
Object3D * createSphere(Material *material)
Interactive creation of a Sphere.
Definition: InterfaceCreation.cpp:150
Object3D * importObject3DFromJson(const json &j)
Object3D conversion from json.
Definition: InterfaceCreation.cpp:215
Material * createDiffuseMaterial(const DoubleVec3D &emittance)
Interactive creation of a DiffuseMaterial.
Definition: InterfaceCreation.cpp:113
Material * createMaterial()
Interactive creation of a Material.
Definition: InterfaceCreation.cpp:129
double getPositiveDoubleFromUser(std::string question="", std::string prompt=PROMPT)
Gets a positive number from the user.
Definition: InterfaceCreation.cpp:70
unsigned int getUnsignedIntFromUser(std::string question="", std::string prompt=PROMPT)
Gets a positive integer from the user.
Definition: InterfaceCreation.cpp:43
const std::string POSITIVE_INT_INFO
Information that is printed when asking a postive integer to the user.
Definition: InterfaceCreation.h:166
int getIntFromUser(std::string question="", std::string prompt=PROMPT)
Gets an integer from the user.
Definition: InterfaceCreation.cpp:25
void to_json(json &j, const Material &mat)
Material conversion to json.
Definition: InterfaceCreation.cpp:189
bool getBoolFromUser(std::string question="", std::string prompt=PROMPT)
Gets a boolean from the user.
Definition: InterfaceCreation.cpp:79
const std::string POSITIVE_DOUBLE_INFO
Information that is printed when asking a postive double to the user.
Definition: InterfaceCreation.h:165
Object3D * createTriangle(Material *material)
Interactive creation of a Triangle.
Definition: InterfaceCreation.cpp:159
Material * importMaterialFromJson(const json &j)
Material conversion from json.
Definition: InterfaceCreation.cpp:193
const std::string BOOL_INFO
Information that is printed when asking a boolean to the user.
Definition: InterfaceCreation.h:167
Object3D * createObject3D()
Interactive creation of an Object3D.
Definition: InterfaceCreation.cpp:170
DoubleVec3D getXYZDoubleVec3DFromUser(std::string question="", std::string prompt=PROMPT)
Gets a vector from the user.
Definition: InterfaceCreation.cpp:93
Material * createRefractiveMaterial(const DoubleVec3D &emittance)
Interactive creation of a RefractiveMaterial.
Definition: InterfaceCreation.cpp:119
double getDoubleFromUser(std::string question="", std::string prompt=PROMPT)
Gets a number from the user.
Definition: InterfaceCreation.cpp:52
std::string getStringFromUser(std::string question="", std::string prompt=PROMPT)
Gets a string from the user.
Definition: InterfaceCreation.cpp:4
Material * createSpecularMaterial(const DoubleVec3D &emittance)
Interactive creation of a SpecularMaterial.
Definition: InterfaceCreation.cpp:125
char getLowerCaseCharFromUser(std::string question="", std::string prompt=PROMPT)
Gets a lowercase character from the user.
Definition: InterfaceCreation.cpp:21
DoubleVec3D getRGBDoubleVec3DFromUser(std::string question="", std::string prompt=PROMPT)
Gets a vector with only positive coordinates from the user.
Definition: InterfaceCreation.cpp:102
const std::string PROMPT
String that signals the user can write a command.
Definition: InterfaceGestion.h:113
nlohmann::json json
Definition: InterfaceGestion.h:14
Defines the RefractiveMaterial class.
Defines the SpecularMaterial class.
Defines the Sphere class.
Defines the Triangle class.
A three-dimensional vector using double values.
Definition: DoubleVec3D.h:190
Abstrat class that models a material.
Definition: Material.h:77
Abstract class for a three-dimentional object.
Definition: Object3D.h:121