• Geometrics类定义


    首先我的结构图是这样的,当然你自己喜欢怎么改都行。这个不影响,只要包含到正确的头文件就行。

    geometrics是几何类的基础,所有几何的碰撞都是从这个类继承下来的。书中也说的很清楚了,大家可以阅读对应章节。

    类声明:

    #pragma once
    #ifndef __GEOMETRICS_HEADER__
    #define __GEOMETRICS_HEADER__
    
    #include "../utilities/geometry.h" //这些文件位置,取决于你自己放的位置。此处需要根据你的实际位置修改。
    #include "../utilities/shaderec.h"
    #include "../utilities/ray.h"
    
    class Geometrics {
    public:
    	Geometrics();
    	virtual ~Geometrics();
    	Geometrics(const Geometrics& g);
    	void set_color(const RGBColor& c);
    	RGBColor get_color() const;
    	virtual Geometrics* clone() const = 0;
    	virtual bool hit(const Ray& r, ldouble& tmin, ShadeRec& sr) const = 0;
    protected:
    	Geometrics& operator=(const Geometrics& g);
    	RGBColor color;
    };
    
    #endif

    类实现:

    #include "pch.h"
    #include "geometics.h"
    
    Geometrics::Geometrics() :color() {}
    
    Geometrics::~Geometrics() {}
    
    Geometrics::Geometrics(const Geometrics& g)
    	: color(g.color) {}
    
    void Geometrics::set_color(const RGBColor& c) {
    	color = c;
    }
    
    RGBColor Geometrics::get_color() const {
    	return color;
    }
    
    Geometrics& Geometrics::operator=(const Geometrics& g) {
    	if (this == &g)
    		return *this;
    	color = g.color;
    	return *this;
    }
    

      

  • 相关阅读:
    android 管理wifi
    andriod 剪贴板操作
    andriod绘制图形
    andriod读写XML
    androd 获得wifi列表
    一个小时内学习SQLite数据库
    Android 使用SQLite本地数据库
    Android可伸缩列表ExpandableListView
    三甲医院涉医疗反腐,今年已有 149 位被查!
    2015各地区顶尖中学排行榜
  • 原文地址:https://www.cnblogs.com/dalgleish/p/12602730.html
Copyright © 2020-2023  润新知