官术网_书友最值得收藏!

Comparing vectors

The last operation that needs to be implemented is vector comparison. Comparison is a component-wise operation; each element must be compared using an epsilon. Another way to measure whether two vectors are the same is to subtract them. If they were equal, subtracting them would yield a vector with no length.

Overload the == and != operators in vec3.cpp. Don't forget to add the function declarations to vec3.h:

bool operator==(const vec3 &l, const vec3 &r) {

    vec3 diff(l - r);

    return lenSq(diff) < VEC3_EPSILON;

}

bool operator!=(const vec3 &l, const vec3 &r) {

    return !(l == r);

}

Important note:

Finding the right epsilon value to use for comparison operations is difficult. In this chapter, you declared 0.000001f as the epsilon. This value is the result of some trial and error. To learn more about comparing floating point values, check out https://bitbashing.io/comparing-floats.html.

In the next section, you will implement vectors with two and four components. These vectors will only be used as a convenient way to store data; they won't actually need any math operations implemented on them.

主站蜘蛛池模板: 开封县| 张家川| 梁山县| 南溪县| 宁河县| 临汾市| 四子王旗| 卓资县| 六安市| 安平县| 延边| 綦江县| 安泽县| 孝昌县| 藁城市| 铜鼓县| 古交市| 太湖县| 武清区| 安福县| 务川| 南宁市| 张家港市| 太原市| 舒兰市| 东明县| 三穗县| 福泉市| 淮滨县| 朝阳县| 石首市| 三穗县| 竹北市| 鸡西市| 榆树市| 浮山县| 北票市| 依安县| 新巴尔虎左旗| 澄江县| 屯门区|