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

    大家一定要先看书,在看我的随笔啊。不然不知道原理的。而且我是不写教程的,只是写笔记怕自己忘记了。

    我把所有的基础类放在了名叫geometry的文件中,包含Vector3, Normal3, Point3,  Point2等

    类声明:

    #include "../../Types.h"
    
    class Point3;
    class Normal3;
    class Matrix;
    
    class Vector3 {
    public:
    	Vector3();
    	~Vector3();
    	Vector3(ldouble a);
    	Vector3(ldouble a, ldouble b, ldouble c);
    	Vector3(const Vector3& v);
    	Vector3(const Point3& p);
    	Vector3(const Normal3& n);
    	Vector3 operator+(const Vector3& v) const;
    	Vector3& operator+=(const Vector3& v);
    	Vector3 operator-(const Vector3& v) const;
    	Vector3& operator-=(const Vector3& v);
    	Vector3 operator*(ldouble a) const;
    	Vector3& operator*=(ldouble a);
    	Vector3 operator/(ldouble f) const;
    	Vector3& operator/=(ldouble f);
    	Vector3 operator-() const;
    	Vector3& operator=(const Vector3& v);
    	bool operator==(const Vector3& v) const;
    	bool operator!=(const Vector3& v) const;
    	ldouble length() const;
    	ldouble length_squared() const;
    	void normalize();
    	friend Vector3 operator*(ldouble a, const Vector3& v);
    	friend ldouble operator*(const Vector3& v1, const Vector3& v2);
    	friend Vector3 operator^(const Vector3& v1, const Vector3& v2);
    	friend Vector3 normalize(const Vector3& v);
    	friend std::ostream& operator<<(std::ostream& os, const Vector3& v);
    	friend std::istream& operator>>(std::istream& is, Vector3& v);
    	ldouble x, y, z;
    };

    实现部分大家就认真看书自己写一遍,练习练习,书中已经写明白了。

    为了大家编译不会报错,头文件里一定要用#ifndef ....防止重复编译报错,之后的每一个头文件都需要这样提前定义,不再重复了。

    然后在cpp文件中,要包含pch.h

    这些都是基础的多文件管理和编译知识哈,没有通过的,自己多琢磨。我已经说到这份上了,你们肯定没问题的。

  • 相关阅读:
    如何编写一个有效的缓存
    [深入Maven源代码]maven绑定命令行参数到具体插件
    java.util.ServiceLoader的用法
    非阻塞算法-栈
    非阻塞算法-简单的计数器
    Excelbatis-一个将excel文件读入成实体列表、将实体列表解析成excel文件的ORM框架,简洁易于配置、可扩展性好
    教你如何迭代地遍历二叉树
    [开源项目]Shell4Win,一个在Windows下执行shell命令的解释器
    [LeetCode]Single Number II
    CAS5.3服务环境搭建
  • 原文地址:https://www.cnblogs.com/dalgleish/p/12602714.html
Copyright © 2011-2022 走看看