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

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

?? vtkborlandrenderwindow.cpp

?? a very goog book
?? CPP
字號:
//---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstop#include <vcl\Sysutils.hpp>#include "vtkBorlandRenderWindow.h"#include "vtkInteractorStyleSwitch.h"#include "vtkInteractorStyleFlight.h"#include "vtkInteractorStyleImage.h"#include "vtkInteractorStyleUser.h"  #pragma package(smart_init)//---------------------------------------------------------------------------// ValidCtrCheck is used to assure that the components created do not have// any pure virtual functions.//static inline void ValidCtrCheck(TvtkBorlandRenderWindow *){  new TvtkBorlandRenderWindow(NULL);}//---------------------------------------------------------------------------namespace Vtkborlandrenderwindow{  void __fastcall PACKAGE Register()    {    TComponentClass classes[1] = {__classid(TvtkBorlandRenderWindow)};    RegisterComponents("Samples", classes, 0);    }}//---------------------------------------------------------------------------__fastcall TvtkBorlandRenderWindow::TvtkBorlandRenderWindow(TComponent* Owner)        : inherited(Owner){  // Do want these  ControlStyle << csCaptureMouse << csClickEvents << csOpaque << csDoubleClicks;  // Don't want these  ControlStyle >> csAcceptsControls >> csSetCaption;    FUsevtkInteractor   = true;  FInteractorMode     = IM_TrackballCamera;  FInteractor         = 0;  FOnVtkClose         = 0;  FRenderWindow       = 0;  FRenderer           = 0;  FAbortCallback      = vtkAbortCallback::New();}//---------------------------------------------------------------------------__fastcall TvtkBorlandRenderWindow::~TvtkBorlandRenderWindow(){    // Delete this first because Renderwindow has a hold on it too  if ( FInteractor )    {    FInteractor->Delete();    FInteractor = 0;    }  if ( FRenderer )    {    FRenderer->GetProps()->RemoveAllItems();    FRenderWindow->RemoveRenderer(FRenderer);    FRenderer->Delete();    FRenderer = 0;    }  if ( FRenderWindow )    {    FRenderWindow->RemoveObserver(FAbortCallback);    FRenderWindow->Delete();    FRenderWindow = 0;    }  FAbortCallback->Delete();}//---------------------------------------------------------------------------vtkWin32OpenGLRenderWindow * __fastcall TvtkBorlandRenderWindow::GetRenderWindow(void){  if ( ! FRenderWindow )    {    // Stuff the renderwindow into our window    FRenderWindow = vtkWin32OpenGLRenderWindow::New();    FRenderWindow->AddObserver( vtkCommand::AbortCheckEvent, FAbortCallback);    FRenderWindow->SetParentId(Parent->Handle);    FRenderWindow->SetWindowId(Handle);    FRenderWindow->DoubleBufferOn();    FRenderWindow->SwapBuffersOn();    // Frame to avoid unsightly garbage during initial    // display which may be long when a complex scene is first rendered    FRenderWindow->Frame();    Invalidate();    }    // We create the interactor here because it makes maintenance better  if (!FInteractor)    {    FInteractor = vtkWin32RenderWindowInteractor::New();    FInteractor->SetRenderWindow(FRenderWindow);    FInteractor->SetInstallMessageProc(false);    SetInteractorMode(FInteractorMode);    FInteractor->UpdateSize(Width,Height);    FInteractor->Initialize();    }  return FRenderWindow;}//---------------------------------------------------------------------------vtkWin32RenderWindowInteractor * __fastcall TvtkBorlandRenderWindow::GetInteractor(void){  if (FRenderWindow)    {    if (!FInteractor)      {      throw Exception("Window exists but no Interactor, this shouldn't happen");      }      }  else    {    this->GetRenderWindow();      }  return FInteractor;}//---------------------------------------------------------------------------vtkRenderer * __fastcall TvtkBorlandRenderWindow::GetRenderer(void){  if (!FRenderer)    {    FRenderer = vtkRenderer::New();    GetRenderWindow()->AddRenderer(FRenderer);    FRenderer->ResetCamera();    DWORD  L = ColorToRGB(Color);    float rgb[3] = { GetRValue(L)/255.0, GetGValue(L)/255.0, GetBValue(L)/255.0 };    FRenderer->SetBackground(rgb);    }  return FRenderer;}//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::SetInteractorMode(const vtkBorlandInteractorMode& im){  if ( im <= IM_TrackballActor && im >= IM_JoystickCamera )    {    vtkInteractorStyleSwitch *iass = dynamic_cast<vtkInteractorStyleSwitch*>(FInteractor->GetInteractorStyle());    if (!iass)      {      iass = vtkInteractorStyleSwitch::New();      FInteractor->SetInteractorStyle(iass);      iass->Delete();      }    switch ( im )      {      case IM_JoystickCamera: iass->SetCurrentStyleToJoystickCamera(); break;      case IM_JoystickActor: iass->SetCurrentStyleToJoystickActor(); break;      case IM_TrackballCamera: iass->SetCurrentStyleToTrackballCamera(); break;      case IM_TrackballActor: iass->SetCurrentStyleToTrackballActor(); break;      default: break;      }      FInteractorMode = im;    }    else if (im==IM_Flight)      {      vtkInteractorStyleFlight *iafl = dynamic_cast<vtkInteractorStyleFlight*>(FInteractor->GetInteractorStyle());      if (!iafl)        {        iafl = vtkInteractorStyleFlight::New();        FInteractor->SetInteractorStyle(iafl);        iafl->Delete();        }      FInteractorMode = IM_Flight;      }    else if (im==IM_Image)      {      vtkInteractorStyleImage *iasi = dynamic_cast<vtkInteractorStyleImage*>(FInteractor->GetInteractorStyle());      if (!iasi)        {        iasi = vtkInteractorStyleImage::New();        FInteractor->SetInteractorStyle(iasi);        iasi->Delete();        }      FInteractorMode = IM_Image;      }    else if (im==IM_User)      {      vtkInteractorStyleUser *iasu = dynamic_cast<vtkInteractorStyleUser*>(FInteractor->GetInteractorStyle());      if (!iasu)        {        iasu = vtkInteractorStyleUser::New();        FInteractor->SetInteractorStyle(iasu);        iasu->Delete();        }      FInteractorMode = IM_User;      }    else      {      return;      }}//---------------------------------------------------------------------------// Paint//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::Paint(void){  if (FRenderWindow)    {    try      {      FRenderWindow->Render();      }    catch (...)      {      // Some error trap should occurr here      ShowMessage("An exception occurred whilst rendering");      }    }  else    { // Design time or before RenderWindow creation    inherited::Paint();    }}//---------------------------------------------------------------------------// Event handlers//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::WMEraseBkgnd(TWMEraseBkgnd &Message){  if (!FRenderWindow)    {    inherited::Dispatch(&Message);    }  else    {    Message.Result = 1; // No, but thanks for asking.    } }//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::WMGetDlgCode(TMessage &Message){  Message.Result = DLGC_WANTARROWS;}//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::WMChar(TWMKey &Message){  switch (Message.CharCode)    {    case 'e':    case 'E':    case 'q':    case 'Q': if (!FOnVtkClose || (FOnVtkClose && FOnVtkClose(this)))                {                FInteractor->OnChar(Handle,Message.CharCode, 0, 0);                }              break;    default:  FInteractor->OnChar(Handle,Message.CharCode, 0, 0);    }}//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::WMKeyDown(TWMKey &Message){  FInteractor->OnKeyDown(Handle,Message.CharCode, 0, 0);}//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::WMKeyUp(TWMKey &Message){  FInteractor->OnKeyUp(Handle,Message.CharCode, 0, 0);}//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::MouseMove(TShiftState shift, int x, int y ){  if(this->OnMouseMove && shift.Contains(ssCtrl))    {    this->OnMouseMove(this,shift,x,y);    return;    }  if (FInteractor && FUsevtkInteractor)    {    int flags = 0;    if (shift.Contains(ssShift)) flags += MK_SHIFT;    if (shift.Contains(ssCtrl))  flags += MK_CONTROL;    FInteractor->OnMouseMove(Handle, flags, x, y );    }}//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::MouseDown(TMouseButton button, TShiftState shift, int x, int y ){  if (::GetFocus()!=Handle) SetFocus();  if(this->OnMouseDown && shift.Contains(ssCtrl))    {    this->OnMouseDown(this,button,shift,x,y);    return;    }  if (FInteractor && FUsevtkInteractor)    {    int flags = 0;    if (shift.Contains(ssShift)) flags += MK_SHIFT;    if (shift.Contains(ssCtrl))  flags += MK_CONTROL;    switch (button)      {      case mbLeft:   FInteractor->OnLButtonDown(Handle, flags, x,y); break;      case mbRight:  FInteractor->OnRButtonDown(Handle, flags, x,y); break;      case mbMiddle: FInteractor->OnMButtonDown(Handle, flags, x,y); break;      }    }}//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::MouseUp(TMouseButton button, TShiftState shift, int x, int y ){  if(this->OnMouseUp  && shift.Contains(ssCtrl))    {    this->OnMouseUp(this,button,shift,x,y);    return;    }  if (FInteractor && FUsevtkInteractor)    {    int flags = 0;    if (shift.Contains(ssShift)) flags += MK_SHIFT;    if (shift.Contains(ssCtrl))  flags += MK_CONTROL;    switch (button)      {      case mbLeft:   FInteractor->OnLButtonUp(Handle, flags, x,y); break;      case mbRight:  FInteractor->OnRButtonUp(Handle, flags, x,y); break;      case mbMiddle: FInteractor->OnMButtonUp(Handle, flags, x,y); break;      }    }}//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::Resize(void){  if (FInteractor)    {    FInteractor->OnSize(this->Handle, 0, this->Width, this->Height);    }}//---------------------------------------------------------------------------void __fastcall TvtkBorlandRenderWindow::WMTimer(TWMTimer &Message){  if (FInteractor)    {    FInteractor->OnTimer(Handle,Message.TimerID);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美自拍偷拍一区| 精品免费国产一区二区三区四区| 国产成人av一区二区三区在线 | 国产传媒一区在线| 韩国在线一区二区| 国产精品自在在线| 国产激情视频一区二区在线观看| 国产精品影视在线| 成人av网址在线| 精品国产免费一区二区三区香蕉| 日韩一二三四区| 精品少妇一区二区三区免费观看| 26uuu精品一区二区三区四区在线| 7777精品久久久大香线蕉| 8x8x8国产精品| 精品国产三级电影在线观看| 久久久久久久久一| 国产精品久久久久久久久免费桃花| 欧美国产欧美亚州国产日韩mv天天看完整 | 91美女福利视频| 在线观看国产一区二区| 欧美顶级少妇做爰| 精品国产凹凸成av人网站| 欧美—级在线免费片| 亚洲人xxxx| 视频一区视频二区在线观看| 久久超碰97中文字幕| 国产99久久久国产精品免费看 | 欧美午夜精品久久久久久孕妇| 欧美视频第二页| 精品女同一区二区| 亚洲欧美在线观看| 亚洲二区在线观看| 激情综合网激情| 97久久超碰国产精品| 678五月天丁香亚洲综合网| 精品久久人人做人人爽| 国产精品伦理在线| 午夜国产精品一区| 国产精品1区二区.| 欧美美女bb生活片| 日本一区二区三区久久久久久久久不| 伊人开心综合网| 精品一区二区三区免费毛片爱| av一二三不卡影片| 制服丝袜中文字幕一区| 国产精品天干天干在线综合| 亚洲一区二区三区四区五区黄| 国产一区二区毛片| 欧美三级韩国三级日本一级| 久久久久久久久久久久电影| 一区二区三区.www| 国产一区二区久久| 欧美视频完全免费看| 国产日韩欧美在线一区| 亚洲自拍偷拍麻豆| 粉嫩在线一区二区三区视频| 在线成人免费视频| 成人免费在线观看入口| 激情综合亚洲精品| 51久久夜色精品国产麻豆| 国产精品久久夜| 久久草av在线| 欧美日韩激情一区二区| 国产精品丝袜91| 美女在线观看视频一区二区| 91麻豆文化传媒在线观看| 久久精品人人做人人爽人人| 亚洲一区二区在线免费看| 成人小视频在线| 久久免费偷拍视频| 蜜桃精品视频在线| 欧美人与z0zoxxxx视频| 亚洲视频一二区| 国产91在线观看丝袜| 欧美精品一区二区高清在线观看| 亚洲成人自拍一区| 色婷婷综合久久久| 国产精品久久久久久久久免费桃花| 韩国女主播成人在线| 91麻豆精品国产91| 天天亚洲美女在线视频| 欧美在线免费视屏| 亚洲精品中文在线| 99国产精品国产精品毛片| 国产精品毛片大码女人| 国产精品夜夜爽| www国产成人| 久久99国产精品免费| 91精品国产乱码| 五月婷婷久久综合| 欧美日韩免费高清一区色橹橹| 亚洲欧美日韩国产综合| 成人动漫一区二区三区| 欧美国产精品一区| 成人黄动漫网站免费app| 国产偷v国产偷v亚洲高清| 国产乱码精品一区二区三区av| 2022国产精品视频| 粉嫩嫩av羞羞动漫久久久| 久久精品视频网| 岛国精品一区二区| 亚洲国产精品黑人久久久| 国产1区2区3区精品美女| 欧美国产日韩精品免费观看| 高清不卡在线观看av| 欧美国产一区二区| 色综合婷婷久久| 一区二区三区在线观看欧美 | 国产精品人人做人人爽人人添 | 在线播放中文字幕一区| 日韩成人一区二区| 欧美一区二区三区在线电影| 日本欧美大码aⅴ在线播放| 欧美刺激午夜性久久久久久久| 奇米亚洲午夜久久精品| 精品欧美乱码久久久久久1区2区| 国产一区二区三区黄视频| 国产欧美日韩精品一区| a4yy欧美一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 欧美欧美欧美欧美| 另类调教123区| 国产情人综合久久777777| caoporn国产一区二区| 一区二区三区电影在线播| 欧美精选午夜久久久乱码6080| 久久精品国产精品亚洲精品| 欧美激情一区二区三区在线| 91极品视觉盛宴| 蜜臀va亚洲va欧美va天堂| 久久久久久久久岛国免费| 成人avav在线| 亚洲成av人**亚洲成av**| 精品美女在线播放| 不卡视频免费播放| 午夜欧美视频在线观看| 欧美精品一区二区三区在线播放| 成人久久视频在线观看| 婷婷久久综合九色综合绿巨人| 精品久久99ma| 一本色道久久综合狠狠躁的推荐| 日韩成人精品在线| 中文子幕无线码一区tr| 欧美日韩一区二区三区视频| 国产一区不卡视频| 一区二区久久久久| 久久中文娱乐网| 91激情在线视频| 国产曰批免费观看久久久| 一区二区三区成人| 久久久无码精品亚洲日韩按摩| 色视频成人在线观看免| 国内精品自线一区二区三区视频| 亚洲欧美日韩系列| 久久一区二区视频| 欧美日韩日日摸| 成人免费毛片app| 久久精品国产久精国产| 一区二区在线观看免费 | 黄色成人免费在线| 亚洲自拍另类综合| 国产欧美一区二区精品久导航| 欧美午夜寂寞影院| 成人动漫视频在线| 国产一区二区三区四区五区美女| 亚洲国产精品久久久男人的天堂 | 亚洲乱码国产乱码精品精可以看| 日韩精品一区二区三区视频播放| 色一情一伦一子一伦一区| 国产一二精品视频| 视频一区视频二区中文字幕| 亚洲男女毛片无遮挡| 久久久久久久久久久久久夜| 欧美一区二区三区免费大片| 色婷婷av一区二区三区大白胸| 成人在线视频一区二区| 另类小说一区二区三区| 日欧美一区二区| 亚洲综合丁香婷婷六月香| 国产精品美女一区二区| 久久综合色之久久综合| 日韩欧美一二三四区| 欧美卡1卡2卡| 在线观看www91| 99re66热这里只有精品3直播| 国产白丝精品91爽爽久久| 久久草av在线| 精一区二区三区| 蜜芽一区二区三区| 亚洲成a人v欧美综合天堂| 伊人开心综合网| 樱花草国产18久久久久| 亚洲欧洲综合另类在线| 国产精品国产成人国产三级| 国产女主播在线一区二区| 久久精品一区二区三区不卡牛牛 | 精品国产三级a在线观看| 日韩一级二级三级| 91精品免费观看|