亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? plane.h

?? 奇跡世界公用文件源代碼,研究網絡游戲的朋友可以研究下
?? H
字號:
#ifndef N_PLANE_H
#define N_PLANE_H
//------------------------------------------------------------------------------
/**
    A plane in 3d space.
    @author
    - RadonLabs GmbH 
    @since
    - 2005.7.06
    @remarks
    - 瘤肯 眠啊 
*/

#include "vector.h"
#include "line.h"

//------------------------------------------------------------------------------
class plane 
{
public:
    /// default constructor
    plane();
    /// constructor 1
    plane(float A, float B, float C, float D);
    /// constructor 2
    plane(const plane& p);
    /// constructor 3
    plane(const vector3& v0, const vector3& v1, const vector3& v2);
    /// set contents
    void set(float A, float B, float C, float D);
    /// construct plane from 3 vectors
    void set(const vector3& v0, const vector3& v1, const vector3& v2);
    /// compute distance of point to plane
    float distance(const vector3& v) const;
    /// get plane normal
    vector3 normal() const;
    /// get intersecting t of line with one sided plane
    bool intersect(const line3& l, float& t) const;
    /// get plane/plane intersection
    bool intersect(const plane& p, line3& l) const;

    float a , b, c, d;
};

//------------------------------------------------------------------------------
/**
*/
inline
plane::plane() :
    a(0.0f),
    b(0.0f),
    c(0.0f),
    d(1.0f)
{
    // empty
}

//------------------------------------------------------------------------------
/**
*/
inline
plane::plane(float A, float B, float C, float D) :
    a(A),
    b(B),
    c(C),
    d(D)
{
    // empty
}

//------------------------------------------------------------------------------
/**
*/
inline
plane::plane(const plane& rhs) :
    a(rhs.a),
    b(rhs.b),
    c(rhs.c),
    d(rhs.d)
{
    // empty
}

//------------------------------------------------------------------------------
/**
*/
inline
void
plane::set(float A, float B, float C, float D)
{
    this->a = A;
    this->b = B;
    this->c = C;
    this->d = D;
}

//------------------------------------------------------------------------------
/**
    Constructs a plane from 3 position vectors.
*/
inline
void
plane::set(const vector3& v0, const vector3& v1, const vector3& v2)
{
    vector3 cross((v2 - v0) * (v1 - v0));
    cross.norm();
    this->a = cross.x;
    this->b = cross.y;
    this->c = cross.z;
    this->d = -(a * v0.x + b * v0.y + c * v0.z);
}

//------------------------------------------------------------------------------
/**
*/
inline
plane::plane(const vector3& v0, const vector3& v1, const vector3& v2)
{
    this->set(v0, v1, v2);
}

//------------------------------------------------------------------------------
/**
    Computes the distance of a point to the plane. Return 0.0 if the 
    point is on the plane.
*/
inline
float
plane::distance(const vector3& v) const
{
    return this->a * v.x + this->b * v.y + this->c * v.z + this->d;
}

//------------------------------------------------------------------------------
/**
    Returns the plane normal.
*/
inline
vector3 
plane::normal() const
{
    return vector3(this->a, this->b, this->c);
}

//------------------------------------------------------------------------------
/**
    Get intersecting t of line with one-sided plane. Returns false
    if the line is parallel to the plane.
*/
inline
bool
plane::intersect(const line3& l, float& t) const
{
    float f0 = this->a * l.b.x + this->b * l.b.y + this->c * l.b.z + this->d;
    float f1 = this->a * -l.m.x + this->b * -l.m.y + this->c * -l.m.z;
    if ((f1 < -0.0001f) || (f1 > 0.0001f))
    {
        t = f0 / f1;
        return true;
    }
    else
    {
        return false;
    }
}

//------------------------------------------------------------------------------
/**
    Get plane/plane intersection. Return false if planes are parallel.
*/
inline
bool
plane::intersect(const plane& p, line3& l) const
{
    vector3 n0 = this->normal();
    vector3 n1 = p.normal();
    float n00 = n0 % n0;
    float n01 = n0 % n1;
    float n11 = n1 % n1;
    float det = n00 * n11 - n01 * n01;
    const float tol = 1e-06f;
    if (fabs(det) < tol) 
    {
        return false;
    }
    else 
    {
        float inv_det = 1.0f/det;
        float c0 = (n11 * this->d - n01 * p.d)    * inv_det;
        float c1 = (n00 * p.d - n01 * this->d)* inv_det;
        l.m = n0 * n1;
        l.b = n0 * c0 + n1 * c1;
        return true;
    }
}

//------------------------------------------------------------------------------
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成年人网站91| 亚洲成av人在线观看| 欧美日本在线一区| 欧美在线制服丝袜| 欧美午夜片在线看| 欧美三级电影一区| 91精品欧美久久久久久动漫| 欧美日韩一区二区欧美激情| 成人网页在线观看| 91亚洲永久精品| 色综合久久久久久久久久久| 91国内精品野花午夜精品| 91色在线porny| 欧美在线观看禁18| 91精品国产色综合久久不卡蜜臀| 欧美日韩国产免费一区二区| 欧美一区二区三区公司| 日韩精品一区二| 国产精品网曝门| 一区二区在线免费| 日本不卡视频在线| 国产麻豆精品视频| 成人国产在线观看| 欧美色国产精品| 久久久九九九九| 亚洲精品自拍动漫在线| 性感美女极品91精品| 免费的国产精品| jlzzjlzz欧美大全| 欧美日本高清视频在线观看| 精品国产乱码久久久久久图片| 国产精品久久久一区麻豆最新章节| 亚洲三级电影全部在线观看高清| 亚洲第一福利一区| 国产激情精品久久久第一区二区| 91在线国内视频| 91精品国产免费| 亚洲精品少妇30p| 精品一区精品二区高清| 91小视频在线观看| 久久精品在线观看| 日本中文一区二区三区| 国产91丝袜在线播放九色| 在线免费观看日本一区| 国产日韩欧美一区二区三区综合| 亚洲综合另类小说| 高清久久久久久| 91精品在线观看入口| 亚洲色欲色欲www| 高清国产一区二区三区| 91精品麻豆日日躁夜夜躁| 日韩伦理免费电影| 韩国v欧美v亚洲v日本v| 欧美电影一区二区三区| 亚洲精品日日夜夜| 成人a区在线观看| 337p日本欧洲亚洲大胆色噜噜| 亚洲在线观看免费| 色噜噜久久综合| 国产精品女同一区二区三区| 久久99国产精品麻豆| 欧美日韩一区二区在线观看视频| 1000精品久久久久久久久| 国产精品一二三区在线| 久久亚洲一级片| 美腿丝袜在线亚洲一区| 欧美一级片免费看| 久久99蜜桃精品| 日韩视频一区在线观看| 日日摸夜夜添夜夜添亚洲女人| 91精品福利在线| 一区二区久久久久| 色噜噜偷拍精品综合在线| 一区二区在线观看不卡| 91色视频在线| 亚洲午夜私人影院| 欧美精品丝袜中出| 香蕉久久夜色精品国产使用方法| 色视频成人在线观看免| 亚洲影视资源网| 欧美日韩精品免费| 婷婷激情综合网| 精品久久久久久久人人人人传媒| 蜜桃久久久久久久| 亚洲欧洲精品一区二区精品久久久| 成人久久久精品乱码一区二区三区| 久久久久国产成人精品亚洲午夜| 国产精品12区| 亚洲综合成人在线| 7777精品伊人久久久大香线蕉| 日韩国产一区二| 国产亚洲综合av| 91在线国产福利| 亚洲高清免费观看 | av在线不卡免费看| 一区二区三区色| 日韩亚洲电影在线| 国产suv精品一区二区三区| 亚洲女与黑人做爰| 欧美男同性恋视频网站| 国精产品一区一区三区mba视频| 中文字幕欧美三区| 欧亚洲嫩模精品一区三区| 免费观看在线综合色| 欧美国产精品劲爆| 精品视频一区三区九区| 国产在线日韩欧美| 亚洲女人****多毛耸耸8| 69堂亚洲精品首页| 91美女在线视频| 裸体一区二区三区| 一区二区三区视频在线观看| 精品国产1区二区| 色噜噜久久综合| 国产精品99久久久久久有的能看| 亚洲黄色免费电影| 久久精品视频在线免费观看| 日本伦理一区二区| 国产乱人伦偷精品视频免下载| 亚洲人精品一区| 久久色成人在线| 91精品中文字幕一区二区三区| 97国产一区二区| 黄色精品一二区| 亚洲一二三区不卡| 中文字幕一区三区| 精品久久一区二区| 欧美亚男人的天堂| 97精品电影院| 国产精品88av| 蜜臀av一区二区在线免费观看 | 亚洲一区中文日韩| 国产欧美日韩精品一区| 精品久久久久久综合日本欧美 | 亚洲福利视频一区二区| 国产精品丝袜久久久久久app| 欧美一级视频精品观看| 在线一区二区三区四区五区| av毛片久久久久**hd| 国产原创一区二区| 午夜精品福利一区二区蜜股av| 亚洲人成人一区二区在线观看 | 久久精品一区二区| 日韩欧美一区二区免费| 欧美日韩午夜精品| 欧美日韩五月天| 欧美精品精品一区| 欧美一区二区三区视频| 日韩欧美综合在线| 欧美变态tickling挠脚心| 精品久久久久久久久久久久久久久 | 久久综合九色综合欧美98| 日韩片之四级片| 精品国产青草久久久久福利| 欧美日韩另类一区| 91精品国产91久久久久久一区二区 | 99在线精品一区二区三区| 国产福利一区二区三区在线视频| 久久国产精品99久久人人澡| 日本va欧美va精品| 久久99精品国产91久久来源| 狠狠久久亚洲欧美| 国产成人精品免费网站| 成人激情文学综合网| 不卡的av在线| 欧美视频在线一区| 欧美一级艳片视频免费观看| 久久久久久麻豆| 国产精品免费丝袜| 亚洲一区自拍偷拍| 日韩电影在线观看网站| 韩国精品主播一区二区在线观看| 国产一区二区三区四区五区美女| 国产乱码一区二区三区| 9久草视频在线视频精品| 国产精品综合二区| 成人福利视频网站| 欧美亚洲一区二区在线观看| 日韩一级完整毛片| 国产精品乱人伦| 亚洲一级电影视频| 激情五月婷婷综合| 一本在线高清不卡dvd| 欧美高清性hdvideosex| 国产日产欧美一区| 午夜久久久久久| 国产成人精品一区二| 欧美亚洲动漫精品| 久久久久久97三级| 亚洲动漫第一页| 成人永久免费视频| 91精品国产综合久久精品| 国产色综合久久| 日本不卡一区二区三区高清视频| 成人一区二区三区视频在线观看| 欧美系列一区二区| 久久精品免费在线观看| 亚洲成人一区在线| 国产精品小仙女| 欧美一级片在线看|