zoukankan      html  css  js  c++  java
  • SingleSphere类定义

    针对于单个球体的碰撞,其实和多个球体一样的,只是我修改了书上的代码,定义了这么多类,终于到头了。马上就要展示奇迹的时候了。

    类定义:

    #pragma once
    #ifndef __SINGLESPHERE_HEADER__
    #define __SINGLESPHERE_HEADER__
    
    #include "tracer.h"
    
    class SingleSphere : public Tracer {
    public:
    	SingleSphere(World* wr_ptr);
    	virtual ~SingleSphere();
    	virtual RGBColor trace_ray(const Ray& ray) const;
    private:
    	SingleSphere();
    };
    #endif

    类实现:

    #include "pch.h"
    #include "singlesphere.h"
    #include "../utilities/world.h"
    
    SingleSphere::SingleSphere(World* wr_ptr) :Tracer(wr_ptr) {}
    
    SingleSphere::~SingleSphere() {}
    
    RGBColor SingleSphere::trace_ray(const Ray& ray) const {
    	ShadeRec sr(world_ptr->hit_bare_bones_objects(ray));
    	if (sr.hit_an_object && world_ptr->get_object_size() == 1) //这里限制了一个球体
    		return sr.color;
    	return RGBColor();
    }
    
  • 相关阅读:
    c++看题
    理想化
    thin mission
    编程时 和 thinking
    tiny mission 2021 10 20
    A Magic Lamp HDU
    Poj 3370
    鸽巢原理(抽屉原理)
    Miller-Rabin质数测试
    Nim or not Nim? HDU
  • 原文地址:https://www.cnblogs.com/dalgleish/p/12602733.html
Copyright © 2011-2022 走看看