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

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

?? exthit.c

?? 圖形處理算法合集3:包括圖形處理、幀緩存技術(shù)、渲染、矩陣運算、建模方法
?? C
字號:
/******************************************************************exthit.CThis code implements a C++ class for fast n-dimensional extentoverlap checking. An instance of the class is initialized with acall to the constructor. For details on the usage of the ExtHitclass see the header for the ExtHit header fileAuthors: Len Wanger and Mike Fusco		 SimGraphics Engineering******************************************************************/#ifndef _EXTHIT_H#include "exthit.h"#endif#include <stdlib.h>static int dim;/******************************************************************  ExtHit - Class constructor  Inputs:    size:	Maximum number of extents that can be held by this instance.  Outputs:    None.******************************************************************/ExtHit::ExtHit (int size){  numColRecs = 0;  maxSize = size;  activeList = NULL;  // Allocate internal tables  collideList  = new CollideRecord[size];  overlapList  = new MinMaxRecordPtr[2*size];  overlapTable = (BOOL *) calloc ( (size*size), sizeof(BOOL) );}/******************************************************************  ~ExtHit - Class destructor  Inputs:    None.  Outputs:    None.******************************************************************/ExtHit::~ExtHit (){  // Reclaim the memory allocated for the internal tables   delete ( overlapList );  delete ( overlapTable );  delete ( collideList );}/******************************************************************  add - Add an extent to be considered for overlap checking.  Inputs:    extent: The extent to consider for extent overlap checking.	obj:	A pointer to the parent object for the extent.  Outputs:    A Boolean value: TRUE if the information was added successfully,					 FALSE otherwise.******************************************************************/BOOL ExtHit::add( Extent &extent, Ptr obj ){  CollideRecord *cr = &collideList[numColRecs];  // Make sure there is room to add the extent  if ( numColRecs >= maxSize )    return (FALSE);  // Add the new CollideRecord to the activeList  if (numColRecs == 0)    {      cr->prevActive = NULL;	  activeList = cr;	}  else    {      cr->prevActive = &collideList[numColRecs-1];      cr->prevActive->nextActive = cr;	}  // Initialize the new CollideRecord  cr->nextActive = NULL;  cr->index = numColRecs++;  cr->obj = obj;  cr->prevOpen = cr->nextOpen = NULL;  cr->active = TRUE;  cr->open = FALSE;  // add the extent values to the CollideRecord  for ( int i=0; i<num_dimensions; i++ )    {	  cr->min[i].value = extent.min[i];	  cr->max[i].value = extent.max[i];	  cr->min[i].ptr = cr->max[i].ptr = cr;	}  return (TRUE);}/******************************************************************  test - Test for overlapping extents.  Inputs:    func: A user supplied routine to be called for all pairs of		overlapping extents.	data: User supplied data to be passed as the d argument in user		supplied routine func.  Outputs:    None.******************************************************************/void ExtHit::test (void (*func)(Ptr d, Ptr obj1, Ptr obj2), Ptr data){  for ( dim=0; dim<num_dimensions; dim++ )    {	  // Add the min and max values of each active extent to the overlapList	  numOverlaps = 0;	  CollideRecord *activeCr = activeList;	  while ( activeCr )	    {		  // Add the min extent value to the overlapList		  MinMaxRecord *mmr = &(activeCr->min[dim]);		  overlapList[numOverlaps++] = mmr;		  // Add the max extent value to the overlapList		  mmr = &(activeCr->max[dim]);		  overlapList[numOverlaps++] = mmr;		  // Reset the active and open flags		  mmr->ptr->active = mmr->ptr->open = FALSE;		  // Mark extent as currently not open		  mmr->ptr->prevOpen = mmr->ptr->nextOpen = NULL;		  activeCr = activeCr->nextActive;		}	  // Sort the OverlapList by MinMaxRecord value	  qsort( overlapList, numOverlaps, sizeof(MinMaxRecordPtr), minMaxCompare );	  // Process all overlapping pairs in the overlapList	  subtest ( dim, numOverlaps, func, data );	}}/******************************************************************  minMaxCompare - Compare the value of two MinMaxRecords for sorting.  Inputs:    rec1: A MinMaxRecord to compare.    rec2: A MinMaxRecord to compare.  Outputs:    -1: if rec1's MMR value is less than rec2's MMR value.	 0:	if the two MMR values are equal	 1: if rec1's MMR value is greater than rec2's MMR value.******************************************************************/int minMaxCompare( const void* rec1, const void* rec2){  MinMaxRecord *mmr1 = *(MinMaxRecord **) rec1;  MinMaxRecord *mmr2 = *(MinMaxRecord **) rec2;  if (  mmr1->value > mmr2->value )    return (1);  else if (  mmr1->value < mmr2->value )    return (-1);  else // mmr1->value == mmr2->value 	{	  // Put minimum extent values before maximum extent value to	  if ( mmr1->value == mmr1->ptr->min[dim].value )	    return (-1);	  else	    return (1);	}}/******************************************************************  subtest - Find and process each set of overlapping pairs of extents  	for a dimension (i.e. in the overlapList).  Inputs:    dim: 		The extent dimension being tested.    oLstSize: 	The number of MinMaxRecords in the overlapList.    func: 		User supplied function to be called for each overlapping pair.    data: 		User supplied data to be passed in the call to func.  Outputs:    None.******************************************************************/void ExtHit::subtest ( int dim, int oLstSize, void (*func)(Ptr d, Ptr p1,						 Ptr p2), Ptr data ){  // Reset the list of currently open CollideRecords.  CollideRecord *openList = NULL;  for (int i=0; i<oLstSize; i++)    {	  // Get CollideRecord for the overlapList entry	  CollideRecord *rec = overlapList[i]->ptr;	  if ( !rec->open )		{		  // Set rec's open flag		  rec->open = TRUE;		  // Set the overlapTable entry for all objects on the openList		  CollideRecord *cr = openList;		  while ( cr )			{			  int min = MIN(cr->index, rec->index);			  int max = MAX(cr->index, rec->index);			  int index = (min * maxSize) + max;			  // check whether the entry for cr overlapping rec is set in			  //   the overlapTable.			  if ( overlapTable[index] == dim )				{				  if ( dim < (num_dimensions-1) )					{					  // Set the entry in the top half of the overlapTable					  overlapTable[index] = dim+1;					  cr->active = rec->active = TRUE;					}				  else				    // The extents overlapped in all of the dimensions, call					// the user supplied overlap function.					(*func)(data, cr->obj, rec->obj );				}			  cr = cr->nextOpen;			}		  // Add rec at the head of the openList		  rec->nextOpen = openList;		  rec->prevOpen = NULL;		  if ( openList )			openList->prevOpen = rec;		  // Update the head of the openList		  openList = rec;		}	  else // the record is already on the openList	    {		  // remove the record from the openList		  if ( rec->prevOpen ) 			rec->prevOpen->nextOpen = rec->nextOpen; 		  else 			openList = rec->nextOpen; 		  if ( rec->nextOpen ) 			rec->nextOpen->prevOpen = rec->prevOpen;  		  rec->open = FALSE;		  // If the record is not active remove it from the activeList		  if ( ! rec->active ) 		    {			  if ( rec->prevActive == NULL )			    {			      activeList = rec->nextActive;				  if (rec->nextActive)			        rec->nextActive->prevActive = NULL;				}			  else			    {			      rec->prevActive->nextActive = rec->nextActive;				  if (rec->nextActive)					rec->nextActive->prevActive = rec->prevActive;				}			}		}	}}//-------------------------------------------------------------// End of exthit.C//-------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区欧美日韩| 黑人巨大精品欧美黑白配亚洲| 欧美一区国产二区| 高清av一区二区| 日本午夜一本久久久综合| 亚洲视频一二三| 国产精品情趣视频| 国产性色一区二区| 日韩精品一区二区三区视频 | 久久亚洲二区三区| 欧美精品99久久久**| 色综合久久中文字幕| 盗摄精品av一区二区三区| 狠狠色综合色综合网络| 全国精品久久少妇| 蜜桃精品在线观看| 日本在线不卡一区| 日韩成人一区二区| 日韩成人伦理电影在线观看| 亚洲线精品一区二区三区八戒| 亚洲人一二三区| 一区二区三区**美女毛片| 亚洲婷婷国产精品电影人久久| 国产精品久久看| 最新国产精品久久精品| 中文字幕日韩av资源站| 国产精品国产精品国产专区不蜜| 日本一区二区三区在线观看| 欧美精彩视频一区二区三区| 国产女同性恋一区二区| 中文字幕一区三区| 亚洲欧美激情插| 亚洲欧美日韩国产成人精品影院| 亚洲柠檬福利资源导航| 亚洲人亚洲人成电影网站色| 亚洲一区二区三区三| 日韩成人午夜电影| 国产不卡免费视频| 91久久人澡人人添人人爽欧美| 欧美视频中文一区二区三区在线观看| 欧美系列亚洲系列| 久久综合色综合88| 国产精品嫩草99a| 一区二区三区四区不卡视频| 肉丝袜脚交视频一区二区| 另类小说色综合网站| 成人美女视频在线观看| 欧美婷婷六月丁香综合色| 欧美变态tickling挠脚心| 国产日产欧美一区二区三区| 亚洲欧美日韩在线不卡| 麻豆国产一区二区| 99久久久久免费精品国产| 欧美夫妻性生活| 国产亚洲精品资源在线26u| 亚洲人成小说网站色在线| 日韩成人dvd| 成人国产亚洲欧美成人综合网| 欧美在线视频日韩| 久久久精品人体av艺术| 亚洲一本大道在线| 国产福利电影一区二区三区| 欧美探花视频资源| 欧美激情一二三区| 麻豆精品新av中文字幕| 欧洲精品一区二区三区在线观看| 日韩美女天天操| 亚洲美女电影在线| 高清不卡一区二区| 欧美一区二区三区免费| 亚洲精品国产第一综合99久久| 久久国产三级精品| 欧美日韩情趣电影| 国产精品久久久一本精品| 久久99精品久久久久久| 欧美日韩精品福利| 最新国产成人在线观看| 国产精品1区2区3区| 日韩一区二区在线看| 亚洲va欧美va人人爽午夜| 99国产精品久久久| 国产精品高潮呻吟| 国产91在线|亚洲| 日韩欧美一区二区不卡| 亚洲r级在线视频| 日本精品视频一区二区三区| 国产精品三级av在线播放| 国产在线国偷精品免费看| 欧美一区二区三区电影| 午夜电影一区二区| 欧美日本国产一区| 午夜欧美电影在线观看| 欧美无乱码久久久免费午夜一区| 亚洲视频图片小说| 色综合中文字幕国产| 亚洲成人av资源| 91精品婷婷国产综合久久竹菊| 一区二区理论电影在线观看| 一本久久综合亚洲鲁鲁五月天 | 久久综合久久综合久久综合| 五月天亚洲精品| 在线免费一区三区| 亚洲乱码日产精品bd| 色域天天综合网| 亚洲最新在线观看| 欧美综合天天夜夜久久| 一区二区在线观看免费| 在线免费观看成人短视频| 亚洲精品视频在线| 欧美中文字幕亚洲一区二区va在线| 亚洲女人****多毛耸耸8| 欧美性做爰猛烈叫床潮| 午夜精品久久久久久久蜜桃app| 欧美精品在欧美一区二区少妇| 婷婷综合久久一区二区三区| 欧美一区二区福利视频| 美女视频一区二区三区| 亚洲精品在线免费播放| 国产精品影视网| 一区二区在线观看免费| 奇米综合一区二区三区精品视频| heyzo一本久久综合| 亚洲女同一区二区| 成人av在线观| 精品乱码亚洲一区二区不卡| 亚洲欧洲日韩在线| 精品久久久久久最新网址| 欧亚一区二区三区| av成人免费在线| 韩国v欧美v日本v亚洲v| 丝袜a∨在线一区二区三区不卡 | 日韩亚洲欧美中文三级| 91麻豆免费观看| hitomi一区二区三区精品| 国产在线精品不卡| 久久99国产精品久久99| 日本亚洲电影天堂| 秋霞成人午夜伦在线观看| 日韩在线一区二区| 日韩和的一区二区| 亚洲午夜免费电影| 亚洲一区中文日韩| 亚洲国产日韩av| 亚洲成人激情av| 无吗不卡中文字幕| 午夜久久福利影院| 日韩av不卡一区二区| 爽好久久久欧美精品| 亚洲国产视频网站| 午夜视频在线观看一区二区| 亚洲电影第三页| 日日夜夜免费精品| 男男视频亚洲欧美| 国内精品嫩模私拍在线| 国产精品自在欧美一区| 国产精品 日产精品 欧美精品| 国产精品主播直播| 成人手机在线视频| 99久久久无码国产精品| 在线精品视频免费观看| 欧美年轻男男videosbes| 欧美一区二区三区系列电影| 精品捆绑美女sm三区| 久久久噜噜噜久久中文字幕色伊伊 | 精品欧美久久久| 久久久综合视频| 国产精品久久久久一区| 一区二区三区在线看| 日韩中文欧美在线| 国产精品 日产精品 欧美精品| 99久久精品国产导航| 精品视频在线视频| 精品欧美一区二区久久| 国产欧美一区二区精品忘忧草 | 亚洲视频 欧洲视频| 午夜精品久久一牛影视| 久久99国产精品免费网站| 成人美女在线视频| 欧美日韩国产区一| 国产无一区二区| 一区二区三区在线免费播放| 免费xxxx性欧美18vr| 99re这里都是精品| 欧美一区二区在线免费播放| 久久精品欧美一区二区三区麻豆| 亚洲三级在线播放| 久久99最新地址| 色婷婷综合久色| 2020国产成人综合网| 一级中文字幕一区二区| 极品少妇xxxx偷拍精品少妇| 91在线观看地址| 精品va天堂亚洲国产| 亚洲精品高清视频在线观看| 国内精品国产成人国产三级粉色 | 一区二区三区四区不卡视频| 久久精品理论片| 91国偷自产一区二区三区成为亚洲经典| 日韩三级在线免费观看| 亚洲精品视频在线|