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

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

?? zarraytrace.cpp

?? zemax與matlab調用程序
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
         FreeDDElParam(WM_DDE_ACK, lParam);
         dummy = (HWND) wParam;
         if (uiLow) GlobalDeleteAtom((ATOM) uiLow);
         if (uiHi) GlobalDeleteAtom((ATOM) uiHi);
			}
   	return 0;

   case WM_DDE_TERMINATE :
   	PostMessage(hwndServer, WM_DDE_TERMINATE, (WPARAM) hwnd, 0L);
      hwndServer = NULL;
      return 0;

   case WM_PAINT :
   	{
      PAINTSTRUCT ps;
   	BeginPaint(hwnd, &ps);
      EndPaint(hwnd, &ps);
      }
      return 0;

   case WM_CLOSE :
   	PostMessage(hwndServer, WM_DDE_TERMINATE, (WPARAM) hwnd, 0L);
   	break;             // for default processing

   case WM_DESTROY :
   	PostQuitMessage(0);
      return 0;
   }
   return DefWindowProc(hwnd, iMsg, wParam, lParam);
}

void WaitForData(HWND hwnd)
{
int sleep_count;
MSG msg;
DWORD dwTime;
dwTime = GetCurrentTime();
GotData = 0;
sleep_count = 0;
#if(0)
while ( (GetCurrentTime() - dwTime < DDE_Timeout) && !GotData)
	{
   while (PeekMessage (&msg, hwnd, WM_DDE_FIRST, WM_DDE_LAST, PM_REMOVE))
   	{
      DispatchMessage (&msg);
      }
   /* Give the server a chance to respond */
   Sleep(0);
   }
#else

while (!GotData)
	{
   while (PeekMessage (&msg, hwnd, WM_DDE_FIRST, WM_DDE_LAST, PM_REMOVE))
   	{
      DispatchMessage (&msg);
      }
   /* Give the server a chance to respond */
   Sleep(0);
   sleep_count++;
   if (sleep_count > 10000)
   	{
      if (GetCurrentTime() - dwTime > DDE_Timeout) 
		{
		// The command has timed out
		mexErrMsgTxt("Command has timed out.\n");
		}
      sleep_count = 0;
      }
   }

#endif
}

char * GetString(char *szBuffer, int n, char *szSubString)
{
int i, j, k;
char szTest[5000];

szSubString[0] = '\0';
i = 0;
j = 0;
k = 0;
while (szBuffer[i] && (k <= n) )
	{
   szTest[j] = szBuffer[i];

   if (szBuffer[i] == '"')
   	{

      i++;
      j++;
      szTest[j] = szBuffer[i];

      /* we have a double quote; keep reading until EOF or another double quote */
      while(szBuffer[i] != '"' && szBuffer[i])
      	{
	      i++;
   	   j++;
		   szTest[j] = szBuffer[i];
         }
      }

   if (szTest[j] == ' ' || szTest[j] == '\n' || szTest[j] == '\r' || szTest[j] == '\0' || szTest[j] == ',')
   	{
      szTest[j] = '\0';
      if (k == n)
      	{
         strcpy(szSubString, szTest);
			return szSubString;
         }
      k++;
      j = -1;
      }
   i++;
   j++;
   }

szTest[j] = '\0';
if (k == n) strcpy(szSubString, szTest);

return szSubString;
}

int PostRequestMessage(char *szItem, char *szBuffer)
{
ATOM aItem;

aItem = GlobalAddAtom(szItem);

/* clear the buffers */
szGlobalBuffer[0] = '\0';
szBuffer[0] = '\0';

if (!PostMessage(hwndServer, WM_DDE_REQUEST, (WPARAM) hwndClient, PackDDElParam(WM_DDE_REQUEST, CF_TEXT, aItem)))
	{
   // MessageBox (hwndClient, "Cannot communicate with ZEMAX", "ZEMAX Inactive", MB_ICONEXCLAMATION | MB_OK);
   
   GlobalDeleteAtom(aItem);
   mexErrMsgTxt("Cannot communicate with ZEMAX. Please ensure ZEMAX is running.\n");
   }

WaitForData(hwndClient);
strcpy(szBuffer, szGlobalBuffer);

if (GotData) return 0;
else return -1;
}

int PostArrayTraceMessage(char *szBuffer, DDERAYDATA *RD)
{
ATOM aItem;
HGLOBAL hPokeData;
DDEPOKE * lpPokeData;
long numbytes;
int numrays;


if (RD[0].opd > 4)
	{
	/* NSC Rays */
	numrays = (int)RD[0].opd - 5;
	}
else
	{
	/* sequential rays */
	numrays = RD[0].error;
	}

/* point to where the data is */
rdpGRD = RD;
ngNumRays = numrays;

mexPrintf("numbytes = (1+numrays)*sizeof(DDERAYDATA);\n"); //debug
numbytes = (1+numrays)*sizeof(DDERAYDATA);

mexPrintf("hPokeData = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, (LONG) sizeof(DDEPOKE) + numbytes);\n"); //debug
hPokeData = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, (LONG) sizeof(DDEPOKE) + numbytes);

if (hPokeData == NULL) mexErrMsgTxt("Unable to allocate Global Memory for DDE.");

mexPrintf("lpPokeData = (DDEPOKE *) GlobalLock(hPokeData);\n"); //debug
lpPokeData = (DDEPOKE *) GlobalLock(hPokeData);

lpPokeData->fRelease = TRUE;

lpPokeData->cfFormat = CF_TEXT;

memcpy(lpPokeData->Value, RD, numbytes);

/* clear the buffers */
szGlobalBuffer[0] = '\0';
szBuffer[0] = '\0';

aItem = GlobalAddAtom("RayArrayData");
GlobalUnlock(hPokeData);

mexPrintf("Just Before the big DDE poke post.\n"); //debug

if (!PostMessage(hwndServer, WM_DDE_POKE, (WPARAM) hwndClient, PackDDElParam(WM_DDE_POKE, (UINT) hPokeData, aItem)))
	{
    // MessageBox (hwndClient, "Cannot communicate with ZEMAX!", "Hello?", MB_ICONEXCLAMATION | MB_OK);
    GlobalDeleteAtom(aItem);
    GlobalFree(hPokeData);
    mexErrMsgTxt("Cannot communicate with ZEMAX. Please ensure ZEMAX is running.\n");
	}
GlobalDeleteAtom(aItem);

mexPrintf("Just after the big poke.\n");

WaitForData(hwndClient);
strcpy(szBuffer, szGlobalBuffer);

/* clear the pointer */
rdpGRD = NULL;

if (GotData) return 0;
else return -1;
}

void MakeEmptyWindow(int text, char *szAppName, char *szOptions)
{
char szOutputFile[260], szModuleName[260], szBuffer[5000];
FILE *output;

/* get the output file name */
GetString(szCommandLine, 2, szOutputFile);

/* get the module name */
GetModuleFileName(globalhInstance, szModuleName, 255);

if ((output = fopen(szOutputFile, "wt")) == NULL)
	{
   /* can't open the file!! */
   return;
   }

if (text)
	{
   fputs("System is invalid, cannot compute data.\n",output);
   fclose(output);
	/* create a text window. Note we pass back the filename, module name, and activesurf as a single setting parameter. */
   sprintf(szBuffer,"MakeTextWindow,\"%s\",\"%s\",\"%s\",%s", szOutputFile, szModuleName, szAppName, szOptions);
   PostRequestMessage(szBuffer, szBuffer);
   }
else
	{
   fputs("NOFRAME\n",output);
   fputs("TEXT \"System is invalid, cannot compute data.\" .1 .5\n",output);
   fclose(output);
   sprintf(szBuffer,"MakeGraphicWindow,\"%s\",\"%s\",\"%s\",1,%s", szOutputFile, szModuleName, szAppName, szOptions);
   PostRequestMessage(szBuffer, szBuffer);
   }
}

void CenterWindow(HWND hwnd)
{
RECT rect;
int newx, newy;
GetWindowRect(hwnd, &rect);
newx = (GetSystemMetrics(SM_CXSCREEN) - (rect.right  - rect.left))/2;
newy = (GetSystemMetrics(SM_CYSCREEN) - (rect.bottom -  rect.top))/2;
SetWindowPos(hwnd, HWND_TOP, newx, newy, 0, 0, SWP_NOSIZE);
}

void Get_2_5_10(double cmax, double *cscale)
{
int i;
double temp;
if (cmax <= 0)
	{
	*cscale = .00001;
	return;
	}
*cscale = log10(cmax);
i = 0;
for (; *cscale < 0; i--) *cscale = *cscale + 1;
for (; *cscale > 1; i++) *cscale = *cscale - 1;
temp = 10;
if (*cscale < log10(5.0)) temp = 5;
if (*cscale < log10(2.0)) temp = 2;
*cscale = temp * pow(10, (double) i );
}

void remove_quotes(char *s)
{
int i=0;
/* remove the first quote if it exists */
if (s[0] == '"')
	{
	while (s[i])
		{
		s[i] = s[i+1];
		i++;
		}
	}
/* remove the last quote if it exists */
if (strlen(s) > 0)
	{
	if (s[strlen(s)-1] == '"') s[strlen(s)-1] = '\0';
	}
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Here comes the UserFunction                                                                                  //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void UserFunction(void)
{

static char szBuffer[5000], szSub[256], szAppName[] = "Bulk Raytrace";

/* Now go and do the bulk raytracing */
mexPrintf("About to post ray data.\n"); //debug
PostArrayTraceMessage(szBuffer, MyRayData);

mexPrintf("Ray Data posted.\n"); //debug

}


// Returns an int from a Matlab mxArray numeric scalar
int myGetInt(mxArray *ScalarNumeric)
{
	int i;
	switch (mxGetClassID(ScalarNumeric))
		{
		case mxDOUBLE_CLASS : i = (int)*mxGetPr(ScalarNumeric);						return(i); break;
		case mxSINGLE_CLASS : i = (int)*(float *)mxGetData(ScalarNumeric);			return(i); break;
		case mxINT8_CLASS   : i = (int)*(char *)mxGetData(ScalarNumeric);			return(i); break;
		case mxUINT8_CLASS  : i = (int)*(unsigned char *)mxGetData(ScalarNumeric);	return(i); break;
		case mxINT16_CLASS  : i = (int)*(short *)mxGetData(ScalarNumeric);			return(i); break;
		case mxUINT16_CLASS : i = (int)*(unsigned short *)mxGetData(ScalarNumeric);	return(i); break;
		case mxINT32_CLASS  : i = *(int *)mxGetData(ScalarNumeric);					return(i); break;
		case mxUINT32_CLASS : i = (int)*(unsigned int *)mxGetData(ScalarNumeric);	return(i); break;
		}
	return(0);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线精品视频一区二区| 蜜桃久久av一区| 国产精品香蕉一区二区三区| 欧美α欧美αv大片| 久久精品久久久精品美女| 久久久五月婷婷| 99国产精品视频免费观看| 亚洲免费在线视频| 91精品国产综合久久久久久久 | 一区二区三区四区国产精品| 色婷婷综合视频在线观看| 亚洲成人第一页| 精品成人一区二区| 91麻豆精品一区二区三区| 人人爽香蕉精品| 日韩美女啊v在线免费观看| 欧美一区二区播放| 97se亚洲国产综合自在线不卡| 成人精品在线视频观看| 五月婷婷另类国产| 日韩码欧中文字| 亚洲一二三区不卡| 成人欧美一区二区三区1314| 3751色影院一区二区三区| 337p亚洲精品色噜噜狠狠| 欧美一级在线免费| 久久久精品免费网站| 中文字幕av免费专区久久| 欧美影片第一页| 不卡的av电影在线观看| 国产在线视频一区二区三区| 亚洲 欧美综合在线网络| 蜜臀av性久久久久蜜臀av麻豆| 国产成人在线视频网站| 久久成人18免费观看| 国产suv精品一区二区883| 韩国v欧美v日本v亚洲v| 99久久婷婷国产综合精品电影| 色欧美88888久久久久久影院| 欧美顶级少妇做爰| 欧美人妖巨大在线| 欧美日韩一区在线观看| 色综合天天综合网天天看片| 国产成人精品午夜视频免费| 日本韩国欧美三级| 欧美网站一区二区| 国产亚洲欧美在线| 中文在线资源观看网站视频免费不卡| 亚洲激情图片一区| 亚洲电影视频在线| 成人午夜电影久久影院| 91精品国产全国免费观看| 国产日韩三级在线| 国产精品网友自拍| 一区二区三区四区乱视频| 国产美女一区二区| 国产一区二区在线免费观看| 欧美视频一区在线观看| 中文字幕第一区综合| 日本成人在线不卡视频| 国产又粗又猛又爽又黄91精品| 欧亚洲嫩模精品一区三区| 欧美激情一区二区在线| 紧缚奴在线一区二区三区| 国产在线一区二区综合免费视频| 欧美色图免费看| 自拍偷自拍亚洲精品播放| 国产黄色91视频| 日韩午夜精品视频| 精品国产乱码久久久久久闺蜜| 亚洲国产综合色| 色婷婷久久久综合中文字幕| 国产女主播一区| 国产精品77777| 欧美精品一区二区三区视频| 捆绑变态av一区二区三区| 欧美精品18+| 亚洲 欧美综合在线网络| 在线亚洲欧美专区二区| 亚洲同性gay激情无套| 99国产精品久久久久| 中文字幕视频一区二区三区久| 国产高清不卡二三区| 久久综合99re88久久爱| 亚洲综合在线视频| 欧美亚洲动漫精品| 亚洲午夜精品在线| 欧美久久婷婷综合色| 秋霞电影网一区二区| 日韩午夜电影av| 国产在线国偷精品产拍免费yy| 精品欧美一区二区三区精品久久 | 欧美三级日韩三级| 午夜精品爽啪视频| 欧美一区二区三区喷汁尤物| 日本亚洲视频在线| 欧美mv和日韩mv国产网站| 黄色成人免费在线| 欧美国产在线观看| 日本精品视频一区二区三区| 亚洲国产三级在线| 日韩女优av电影| 亚洲黄色小视频| 欧美日韩国产综合视频在线观看| 性久久久久久久久久久久| 日韩欧美电影在线| 懂色av一区二区三区免费观看| 亚洲色图第一区| 欧美另类变人与禽xxxxx| 精品一二线国产| 综合激情成人伊人| 日韩一区二区在线观看视频播放| 国产精品996| 亚洲精品欧美综合四区| 欧美一级艳片视频免费观看| 福利一区福利二区| 亚洲第四色夜色| 国产日韩精品一区| 欧美日韩一级二级| 国产a视频精品免费观看| 亚洲高清视频中文字幕| 国产视频一区二区在线| 欧美吻胸吃奶大尺度电影| 国产精品原创巨作av| 亚洲自拍偷拍麻豆| 欧美午夜一区二区三区| 国产一区二区三区免费在线观看| 一区二区三区欧美| 国产三级精品视频| 日韩一区二区视频| 色噜噜狠狠色综合中国| 国产精品羞羞答答xxdd| 人禽交欧美网站| 亚洲国产wwwccc36天堂| 国产精品色呦呦| 欧美xxxxx牲另类人与| 欧美性猛交一区二区三区精品| 国产·精品毛片| 久久99精品国产91久久来源| 亚洲综合色自拍一区| 中文字幕日本乱码精品影院| 精品欧美一区二区在线观看| 777色狠狠一区二区三区| 色综合久久天天| 成人a级免费电影| 国产一区二区91| 久久99精品国产麻豆不卡| 三级欧美在线一区| 久久久久久亚洲综合| 91精品国产色综合久久不卡电影 | 欧美性猛交一区二区三区精品| 丁香婷婷综合五月| 国产激情精品久久久第一区二区| 日韩和欧美一区二区三区| 午夜欧美大尺度福利影院在线看 | 亚洲精品免费视频| 亚洲色图在线播放| 亚洲人成在线观看一区二区| 国产精品美日韩| 国产精品久久久久9999吃药| 欧美视频自拍偷拍| 欧美图片一区二区三区| 色综合天天性综合| 91亚洲精品久久久蜜桃| 色综合天天天天做夜夜夜夜做| 成人福利电影精品一区二区在线观看 | 欧美电影在线免费观看| 欧美日韩第一区日日骚| 欧美一级高清大全免费观看| 欧美精品一卡二卡| 欧美一级日韩不卡播放免费| 在线综合+亚洲+欧美中文字幕| 欧美天堂一区二区三区| 91精品国产麻豆| 2020日本不卡一区二区视频| 久久嫩草精品久久久精品一| 久久精品亚洲麻豆av一区二区| 久久久影视传媒| 日韩美女精品在线| 亚洲成人自拍网| 精品无码三级在线观看视频| 国产999精品久久久久久绿帽| caoporn国产精品| 精品一区二区三区久久| 丁香网亚洲国际| 欧美在线三级电影| 日韩免费观看高清完整版| 国产日本亚洲高清| 一区二区成人在线| 久草这里只有精品视频| 国产精品亚洲视频| 欧洲精品在线观看| 26uuu精品一区二区三区四区在线| 欧美国产国产综合| 天天影视色香欲综合网老头| 国产精品影视在线| 欧美日韩成人综合天天影院| www国产亚洲精品久久麻豆| 一区二区三区波多野结衣在线观看| 日韩精品电影一区亚洲|