⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 win32cone.cxx

📁 a very goog book
💻 CXX
字号:
/*=========================================================================  Program:   Visualization Toolkit  Module:    $RCSfile: Win32Cone.cxx,v $  Language:  C++  Date:      $Date: 2002/11/27 11:45:07 $  Version:   $Revision: 1.4 $  Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen   All rights reserved.  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.     This software is distributed WITHOUT ANY WARRANTY; without even      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      PURPOSE.  See the above copyright notice for more information.=========================================================================*///// This example is a windows application (instead of a console application)// version of Examples/Tutorial/Step1/Cxx/Cone.cxx. It is organized in a more// object oriented manner and shows a fairly minimal windows VTK application.//// first include the required header files for the vtk classes we are using#include "vtkConeSource.h"#include "vtkPolyDataMapper.h"#include "vtkRenderWindow.h"#include "vtkRenderWindowInteractor.h"#include "vtkRenderer.h"static HANDLE hinst; long FAR PASCAL WndProc(HWND, UINT, UINT, LONG);// define the vtk part as a simple c++ class class myVTKApp   {public:   myVTKApp(HWND parent);       ~myVTKApp();private:  vtkRenderWindow *renWin;  vtkRenderer *renderer;  vtkRenderWindowInteractor *iren;  vtkConeSource *cone;  vtkPolyDataMapper *coneMapper;  vtkActor *coneActor;};int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,                    LPSTR lpszCmdParam, int nCmdShow) {  static char szAppName[] = "Win32Cone";  HWND        hwnd ;  MSG         msg ;  WNDCLASS    wndclass ;  if (!hPrevInstance)    {    wndclass.style         = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;    wndclass.lpfnWndProc   = WndProc ;    wndclass.cbClsExtra    = 0 ;    wndclass.cbWndExtra    = 0 ;    wndclass.hInstance     = hInstance;    wndclass.hIcon         = LoadIcon(NULL,IDI_APPLICATION);    wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW);             wndclass.lpszMenuName  = NULL;    wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);    wndclass.lpszClassName = szAppName;    RegisterClass (&wndclass);    }    hinst = hInstance;  hwnd = CreateWindow ( szAppName,                        "Draw Window",                        WS_OVERLAPPEDWINDOW,                        CW_USEDEFAULT,                        CW_USEDEFAULT,                        400,                        480,                        NULL,                        NULL,                        hInstance,                        NULL);  ShowWindow (hwnd, nCmdShow);  UpdateWindow (hwnd);  while (GetMessage (&msg, NULL, 0, 0))    {         TranslateMessage (&msg);    DispatchMessage (&msg);    }  return msg.wParam;}long FAR PASCAL WndProc (HWND hwnd, UINT message,                                                   UINT wParam, LONG lParam){  static HWND ewin;  static myVTKApp *theVTKApp;  switch (message)    {    case WM_CREATE:      {      ewin = CreateWindow("button","Exit",                          WS_CHILD | WS_VISIBLE | SS_CENTER,                                             0,400,400,60,                           hwnd,(HMENU)2,                           (HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),                          NULL);      theVTKApp = new myVTKApp(hwnd);      return 0;      }          case WM_COMMAND:      switch (wParam)        {        case 2:          PostQuitMessage (0);          if (theVTKApp)            {            delete theVTKApp;            theVTKApp = NULL;            }          break;        }      return 0;          case WM_DESTROY:      PostQuitMessage (0);      if (theVTKApp)        {        delete theVTKApp;        theVTKApp = NULL;        }      return 0;     }  return DefWindowProc (hwnd, message, wParam, lParam);}myVTKApp::myVTKApp(HWND hwnd) {  // Similar to Examples/Tutorial/Step1/Cxx/Cone.cxx   // We create the basic parts of a pipeline and connect them  this->renderer = vtkRenderer::New();  this->renWin = vtkRenderWindow::New();  this->renWin->AddRenderer(this->renderer);  // setup the parent window  this->renWin->SetParentId(hwnd);  this->iren = vtkRenderWindowInteractor::New();  this->iren->SetRenderWindow(this->renWin);  this->cone = vtkConeSource::New();  this->cone->SetHeight( 3.0 );  this->cone->SetRadius( 1.0 );  this->cone->SetResolution( 10 );  this->coneMapper = vtkPolyDataMapper::New();  this->coneMapper->SetInput(this->cone->GetOutput());  this->coneActor = vtkActor::New();  this->coneActor->SetMapper(this->coneMapper);    this->renderer->AddActor(this->coneActor);  this->renderer->SetBackground(0.2,0.4,0.3);  this->renWin->SetSize(400,400);  // Finally we start the interactor so that event will be handled  this->renWin->Render();}myVTKApp::~myVTKApp(){    renWin->Delete();    renderer->Delete();    iren->Delete();    cone->Delete();    coneMapper->Delete();    coneActor->Delete();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -