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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rtentry.h

?? FastDb是高效的內(nèi)存數(shù)據(jù)庫系統(tǒng)
?? H
字號:
// -*- Mode: C++ -*-

//           RTentry.h
//
// Copyright (c) 1996, Regents of the University of California
// $Header: /cvsroot/fastdb/fastdb/GiST/RSTree/RTentry.h,v 1.1 2007/07/18 20:45:47 knizhnik Exp $

#ifndef RTENTRY_H
#define RTENTRY_H

#include <string.h>
#include <stdio.h>
#include <math.h>
#include <iostream.h>

#include "GiSTdefs.h"
#include "GiSTentry.h"

#ifndef MIN
#define MIN(x, y) ((x < y) ? (x) : (y))
#define MAX(x, y) ((x > y) ? (x) : (y))
#endif

class RTpredicate;
class RTnode;
class RTentry;

// RTpenalty is a vector of 3 doubles, to support two tie-breakers.
// See the RTentry::Penalty method for more detail.
class RTpenalty : public GiSTpenalty
{
  
public:
  RTpenalty() {
    amount = 0;
    amount2 = 0;
    amount3 = 0;
  }
  RTpenalty(const double d) : amount2(0), amount3(0) {};
  RTpenalty(const double d1, const double d2, const double d3) {
    amount = d1;
    amount2 = d2;
    amount3 = d3;
  }
  double operator = (const double d) { 
    amount = d; amount2 = amount3 = 0; 
    return(amount);
  }
  int operator < (const RTpenalty &p) const {
    if (amount < p.amount) return(1);
    if (amount > p.amount) return(0);
    if (amount2 < p.amount2) return(1);
    if (amount2 > p.amount2) return(0);
    if (amount3 < p.amount3) return(1);
    return(0);
  }

  double amount2;
  double amount3;
};

// RTkey is a rectangle represented as 4 doubles:
//   xlow, xhigh, ylow and yhigh
// We also throw in some standard geo operators to support various 
// query predicates, etc.

class RTkey : GiSTobject
{
public:
  friend RTentry;
  RTkey() {
    xl = yl = xh = yh = 0;
  }
  RTkey(const RTkey& k) {
    xl = k.xl;
    xh = k.xh;
    yl = k.yl;
    yh = k.yh;
  }
  RTkey(const double xl, const double xh, const double yl, const double yh):
    xl(xl), xh(xh), yl(yl), yh(yh) {
    }
  RTkey(char *s);

  GiSTobject *Copy() const { return new RTkey(*this); }

  ~RTkey() {
  }
  GiSTobjid IsA() { return RTKEY_CLASS; }

  RTkey& operator = (const RTkey& k) {
    xl = k.xl;
    xh = k.xh;
    yl = k.yl;
    yh = k.yh;
    return *this;
  }

  int operator == (const RTkey& k) {
    return (xl == k.xl && xh == k.xh && yl == k.yl && yh == k.yh);
  }

  int overlap (const RTkey& k) {
    return(((xh >= k.xh && xl <= k.xh) ||
            (k.xh >= xh && k.xl <= xh)) &&
           ((yh >= k.yh && yl <= k.yh) ||
            (k.yh >= yh && k.yl <= yh)) );
  }

  int contained (const RTkey& k) {
    return((xh <= k.xh && xl >= k.xl &&
            yh <= k.yh && yl >= k.yl));
  }

  int contain(const RTkey& k) {
    return((xh >= k.xh && xl <= k.xl &&
            yh >= k.yh && yl <= k.yl));
  }

  double area() { return((xh-xl)*(yh-yl)); }

  double dist(const RTkey& b) {
    return(sqrt(pow(fabs(((b.xh + b.xl)/2)-((xh + xl)/2)), 2) 
		+ pow(fabs(((b.yh + b.yl) - 2)-((yh + yl)/2)),2)));
  }

  RTkey *intersect(const RTkey& k) {
    RTkey *result;
    
    if (!overlap(k))
      return((RTkey *)NULL);  
    result = new RTkey(MAX(xl,k.xl), MIN(xh,k.xh), MAX(yl,k.yl), 
                       MIN(yh,k.yh));
      
    return(result);
  }

  RTkey *expand(const RTkey& k) {
    RTkey *result;

    result = new RTkey(MIN(xl, k.xl), MAX(xh, k.xh), MIN(yl, k.yl),
                       MAX(yh, k.yh));
    return(result);
  }

  void Print(ostream& os) const {
    os << '"';
    os << "(" << xl << "," << xh << "," << yl << "," << yh << ")";
    os << '"';
  }

  double xl;
  double xh;
  double yl;
  double yh;
};

inline ostream& operator<< (ostream& os, const RTkey& k) {
    k.Print(os);
    return os;
}

class GiSTpredicate;

class RTentry : public GiSTentry
{
friend RTpredicate;
  private:
    RTkey &Key() const { return *(RTkey *)key; }
  public:
    RTentry() {}

    RTentry(const RTkey& k, const GiSTpage p) {
      key = (GiSTobject *)new RTkey(k);
      ptr = p;
    }
    RTentry(const RTentry& e) : GiSTentry(e) {
      key = (GiSTobject *)new RTkey(*(RTkey *)(e.key));
    }

    ~RTentry() { 
      if (key)
	delete key;
      key = NULL;
    }

    // The methods we're required to supply
    GiSTpenalty *Penalty(const GiSTentry &newEntry) const;
    int CompressedLength() const {
      return sizeof(RTkey);
    }
#ifdef PRINTING_OBJECTS
    void Print(ostream& os) const {
        key->Print(os);
        os << "->" << Ptr() << endl;
    }
#endif

    GiSTobject *Copy() const { return new RTentry(*this); }

    GiSTobjid IsA() const { return RTENTRY_CLASS; }

    int IsEqual(const GiSTobject& obj) const {
        if (obj.IsA() != RTENTRY_CLASS)
            return 0;
        const RTentry& rte = (const RTentry&) obj;
        return ((*((RTkey *)key) == (*((RTkey *)(rte.key)))));
    }
    const RTkey& bbox() const { return Key(); }
    void InitKey() { key = new RTkey; }

    double xlower() { return Key().xl; }
    double xupper() { return Key().xh; }
    double ylower() { return Key().yl; }
    double yupper() { return Key().yh; }
    void setxlower(double d) { Key().xl = d; }
    void setxupper(double d) { Key().xh = d; }
    void setylower(double d) { Key().yl = d; }
    void setyupper(double d) { Key().yh = d; }

    double OverlapArea(const RTkey &k) const;
};

#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性色欧美a在线播放| 欧美影片第一页| 91精品在线免费| 青青草成人在线观看| 欧美精品一区二区在线播放| 成人免费av在线| 亚洲精品自拍动漫在线| 欧美欧美欧美欧美| 另类综合日韩欧美亚洲| 久久久久久久久久久久电影 | 亚洲另类在线视频| 色婷婷av一区二区三区之一色屋| 亚洲国产另类精品专区| 欧美一级黄色录像| 国产 欧美在线| 亚洲一区二区三区影院| 日韩一区二区三区在线视频| 国产精品一区二区不卡| 亚洲色图.com| 日韩丝袜情趣美女图片| 国产黄人亚洲片| 亚洲与欧洲av电影| 国产亚洲一区二区三区| 91成人看片片| 久久疯狂做爰流白浆xx| 久久精品72免费观看| 91福利区一区二区三区| 狠狠色狠狠色综合日日91app| 国产无一区二区| 欧美日韩国产a| 国模无码大尺度一区二区三区| 亚洲精品亚洲人成人网| 精品少妇一区二区三区视频免付费 | 成人免费视频网站在线观看| 精品视频在线免费观看| 亚洲女爱视频在线| 欧美亚洲国产bt| 欧美经典一区二区| 精品在线亚洲视频| 欧美精品久久久久久久多人混战| 久久综合久色欧美综合狠狠| 免费一级欧美片在线观看| 一本久久综合亚洲鲁鲁五月天| 国产精品免费看片| 岛国精品在线观看| 日本色综合中文字幕| 国产精品另类一区| 欧美电视剧在线看免费| 精品视频资源站| 日本黄色一区二区| 成人性色生活片| 国产资源在线一区| 日韩av一区二区在线影视| 伊人色综合久久天天| 国产欧美日韩不卡免费| 精品国产91洋老外米糕| 538在线一区二区精品国产| 91国偷自产一区二区使用方法| 日韩激情视频网站| 成人午夜av影视| 国产高清精品网站| 精品在线免费观看| 奇米888四色在线精品| 亚洲超碰精品一区二区| 亚洲一区二区三区美女| 亚洲欧美日韩国产综合| 亚洲欧美综合另类在线卡通| 中文字幕免费在线观看视频一区| 精品美女一区二区| 精品国产91洋老外米糕| 日韩欧美另类在线| 精品欧美一区二区三区精品久久| 欧美一区二区免费| 日韩女优av电影在线观看| 91精品蜜臀在线一区尤物| 欧美日韩高清影院| 91精品国产欧美一区二区成人| 欧美人xxxx| 日韩女优毛片在线| 久久久久久久久久久久电影| 久久久久久久av麻豆果冻| 久久夜色精品国产欧美乱极品| 精品国产露脸精彩对白| 精品久久久久香蕉网| 久久久久国产精品免费免费搜索| 国产亚洲欧洲997久久综合| 国产日本欧美一区二区| 亚洲色图欧洲色图婷婷| 一区二区三区四区高清精品免费观看 | 青青草伊人久久| 国模少妇一区二区三区| 丁香网亚洲国际| 色先锋资源久久综合| 欧美日韩性生活| 精品国产网站在线观看| 国产丝袜欧美中文另类| 国产精品伦一区| 亚洲综合色丁香婷婷六月图片| 午夜久久久久久久久| 久久精工是国产品牌吗| 成人在线综合网| 精品视频999| 精品国产电影一区二区| 亚洲欧洲精品一区二区三区| 亚洲在线视频网站| 国产真实乱偷精品视频免| av电影在线不卡| 欧美高清精品3d| 久久久美女毛片| 一区二区欧美精品| 久久成人18免费观看| 成人动漫在线一区| 欧美理论片在线| 国产欧美日韩不卡免费| 亚洲成人免费视| 粉嫩av亚洲一区二区图片| 欧美少妇一区二区| 日韩精品国产精品| 久久电影网电视剧免费观看| 粉嫩aⅴ一区二区三区四区五区| 成人综合激情网| 国产色爱av资源综合区| 亚洲综合视频在线观看| 国产成人精品免费| 成人av电影在线播放| 懂色一区二区三区免费观看| 久久99精品久久久久久动态图 | 风间由美一区二区三区在线观看| av一本久道久久综合久久鬼色| 国产精品欧美一级免费| 欧美变态tickle挠乳网站| 精品一区二区三区免费| 国产精品久久久久影院| 国产九色sp调教91| 欧美精品高清视频| 精品久久人人做人人爰| 中文字幕一区二区三区在线播放 | 日韩精品成人一区二区在线| 91在线看国产| 中文字幕高清一区| 欧美专区日韩专区| 久久久九九九九| 99精品视频中文字幕| 五月婷婷欧美视频| 欧美一二三四在线| 97超碰欧美中文字幕| 亚洲美女免费视频| 欧美一级高清大全免费观看| 国产精品888| 久久精品国产精品亚洲红杏| 日韩欧美高清dvd碟片| 日本不卡123| 欧美片在线播放| 偷窥少妇高潮呻吟av久久免费| 色婷婷国产精品| 亚洲日本丝袜连裤袜办公室| 91 com成人网| 成人黄页在线观看| 亚洲天堂2016| 日韩免费高清av| 国产美女久久久久| 国产精品久久久久婷婷| 91啪在线观看| 久久精品国产99久久6| 精品久久五月天| 成人午夜又粗又硬又大| 亚洲免费在线电影| 日韩精品一区二区在线| 捆绑调教美女网站视频一区| 亚洲激情欧美激情| 99re成人精品视频| 三级欧美韩日大片在线看| 国产精品污网站| 国产欧美视频在线观看| 欧美成人bangbros| 91免费看片在线观看| 午夜精品久久久久影视| 亚洲成a人在线观看| 一色桃子久久精品亚洲| 久久久久久亚洲综合影院红桃| 日韩欧美激情四射| 91精品国产麻豆| 国产婷婷色一区二区三区四区| 91福利在线播放| 精品婷婷伊人一区三区三| 国产1区2区3区精品美女| 亚洲va天堂va国产va久| 国产精品无遮挡| 久久久亚洲午夜电影| 欧美一级理论性理论a| 欧美日韩一区 二区 三区 久久精品| 91精品一区二区三区在线观看| 亚洲国产精品精华液2区45| 福利一区二区在线观看| 亚洲另类春色校园小说| 欧美日韩中文字幕一区| 激情五月婷婷综合网| 国产精品久久久久四虎| 欧美日韩免费视频| 激情五月婷婷综合网|