baseshapes.h

来自「file code.zip are used to implement ray 」· C头文件 代码 · 共 96 行

H
96
字号
#ifndef _BASE_SHAPES_#define _BASE_SHAPES_#include <string>#include <iostream>using namespace std;#include "common.h"#include "affine.h"#include "Material.h"#include "Ray.h"#define PI 3.14159265#define TWOPI (3.14159265 * 2)#define degPerRad (180/3.14159265)#define Near(a,v) fabs((a)-(v))<0.0001 //@@@@@@@@@@@@@@@@@@@@@@@@ Cuboid @@@@@@@@@@@@@@@@@@@@@@@@class Cuboid{ // holds six border values of a cuboidpublic:    float left, top, right, bott, front, back;    void set(float l, float t, float r, float b, float f, float bk);    void set(Cuboid& c);    void print();};//@@@@@@@@@@@@@@@@@@@@@@@@@@ SphereInfo @@@@@@@@@@@@@@@@@@@@@class SphereInfo{// holds the center and radius of a spherepublic:    Point3 center;    float radSq;    void set(float x, float y, float z, float rsq);};//@@@@@@@@@@@@@@@@@@@@@ GeomObj class @@@@@@@@@@@@@@@@class GeomObj{public:    IntRect scrnExtnt;    Cuboid genBoxExtent, worldBoxExtent;    SphereInfo genSphereExtent, worldSphereExtent;    string name;    GeomObj * next;    GeomObj();    GeomObj(string name);    virtual ~GeomObj() {};	virtual void initializeData() {};	virtual bool hit(Ray &r, Intersection &inter) =0;	virtual void makeExtentPoints(PointCluster& clust) {};	virtual void drawCanvas() {};	virtual void drawOpenGL() {};    virtual void loadStuff() {}	virtual void tellMaterialsGL() {};    virtual void print() { cout << "Object: GeomObj\n"; }};//@@@@@@@@@@@@@@@@@ Shape @@@@@@@@@@@@@@@@@@@@@class Shape: public GeomObj {public:    Material mtrl;    Affine4 transf, invTransf;    Shape();    virtual ~Shape() {}    void initializeData() {};    virtual bool hit(Ray &r, Intersection &inter) = 0;    virtual void makeExtentPoints(PointCluster& clust) = 0;    void setMaterial(Material mt);    void tellMaterialsGL();    void xfrmRay(Ray &genRay, Ray r);	virtual void drawCanvas() {}    virtual void drawOpenGL() = 0;    virtual void print() { cout << "Object: Shape\n"; }};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?