Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

60
Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000

Transcript of Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Page 1: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Cours Vtk

Marcela Hernández HoyosCREATIS

Janvier 2000

Page 2: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Contenu Qu’est-ce que c’est ?

Pourquoi VTK?

Documentation

Syntaxe

POO : Quelques concepts de base

Modèles d'objets VTK Modèle de visualisation Modèle graphique Modèle de traitement

Exemple d'une application

Tcl/Tk & Vtk & C++

Page 3: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Qu'est-ce que c'est ?

Visualization ToolKit

Niveau d'application (C++,Tcl/Tk)

VTK

Librairie graphique (openGL)

Librairie de classes C++(compilée)

Composant de communication avec des langages interpretés :

Tcl/Tk, Java, Python

Système Orienté Objet

Page 4: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Pour quoi VTK?

Gratuit

Code source C++• Vous avez le contrôle

POO

Extensible • Possibilité de création de nouvelles classes

Plate-forme/librairie indépendante

Algorithmes avancés et très utiles

Conversion des données en images

Nombreux utilisateurs + liste de discussion

Page 5: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Documentation Livres

• The VisualizationToolkit, 2nd edition» Schroeder, Martin, Lorenson. Prentice Hall.

• VTK User's Guide» Schroeder, Martin. Kitware, Inc.

Page web• http://www.kitware.com /vtk.html

» Software, FAQ’s, listes de discussion, exemples, links, etc

Autres exemples• Répertoire d'installation VTK

• graphics/examplesTcl

D. Fibroulet

Page 6: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Syntaxe utilisée dans ces notes

Pour les méthodes (fonctions)• Description d'une méthode

• Pseudo-syntaxe de la méthodecode Tcl/Tk

Exemple• Ajouter / Supprimer un renderer

• AddRenderer (vtkRenderer)

• RemoveRenderer (vtkRenderer)

vtkRendererWindow myWindow

vtkRenderer myRenderer

myWindow AddRenderer myRenderer

Page 7: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

POO ???

VTK

Librairie de classes C++(compilée)

Système Orienté Objet

Page 8: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Programmation Orientée Objet

Concepts de base

Page 9: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

POO : Quelques concepts de base

Structure de données

ChampsFonctions

Variables

Attributs Méthodes

Objet

Programmationprocedurale

POOClasse

Page 10: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Exemple - Programmation procéduraletypedef struct { int x; int y;} point2D;

typedef struct { int x; int y; int z;} point3D;

void printPoint2D(point2D *p) { printf("x:%d, y:%d",p->x, p->y) }

void printPoint3D(point3D *p) { printf("x:%d, y:%d,z:%d",p->x, p->y,p->z) }

point2D *p2D;point3D *p3D;

.

.

.

p2D = malloc …p3D = malloc …

.

.

.

printPoint2D(p2D);printPoint3D(p3D);

Structure de données

Fonction

Variable

Champs

Appel aux fonctions

Page 11: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Exemple - POOclass point2D {public: void print(); point2D *New(); protected: int x; int y;}

class point3D {public: void print(); point3D *New(); protected: int x; int y; int z;}

point2D *p2D = point2D :: New;point3D *p3D = point3D :: New;

.

.

.

.

.

.

p2D -> print();p3D->print();

ClasseObjets

Méthodes

Attributs

Appel aux méthodes

Page 12: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

VTKUn système de Visualisation

Orienté Objet

Page 13: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Exemple - Sphèrecatch {load vtktcl};source vtkInt.tcl;source colors.tcl

vtkSphereSource sphere sphere SetRadius 5 sphere SetThetaResolution 36 sphere SetPhiResolution 18

vtkPolyDataMapper isoMapper isoMapper SetInput [sphere GetOutput] isoMapper ScalarVisibilityOn

vtkActor isoActor isoActor SetMapper isoMapper eval [isoActor GetProperty] SetColor $peacock

vtkRenderer ren1 ren1 AddActor isoActor ren1 SetBackground 1 1 1

vtkRenderWindow renWin renWin AddRenderer ren1 renWin SetSize 500 500

vtkRenderWindowInteractor iren iren SetRenderWindow renWin iren Initialize

Source

Mapper

Actor

Renderer

Render Window

Page 14: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Exemple - Volume

Page 15: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Lecture, traitement et affichage de données sous la forme d'images

Deux étapes• Conversion de données en primitives graphiques

» Points, lignes, triangles, …

• Conversion de données graphiques en images» Affichage des primitives graphiques à l'écran

Les objets VTK sont organisés en trois modèles:• Modèle de visualisation

» Étape 1 : Représentation géométrique des données

• Modèle graphique» Étape 2 : Rendu de la représentation géométrique

• Modèle de traitement» Traitement d'images

Vtk - Système de Visualisation

Page 16: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Vtk - Système de Visualisation

Modèle de Visualisation

Modèle graphique

Données

Modèle de Traitement

Source(Reader)

Source(Procedural)

Filter

Mapper(Writer)

MapperLecture

Création de nouvelles données

Écriture

Transformation des données en

primitives graphiques

Affichage

Page 17: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Modèle de Visualisation

Page 18: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Modèle de visualisation

Objectif• Transformer les données en primitives graphiques

• Construire la représentation géométriques des objets à afficher

Basé sur un paradigme "pipeline" • La transformation des données est décomposée en modules

• Chaque module réalise une opération précise sur les données (transformation)

• Les modules sont connectés entre eux pour former un réseau ou pipeline

• Les données circulent à l'intérieur du pipeline, en passant d'un module à l'autre

Page 19: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Modèle de visualisation

Deux types d'objets:• Objets "data"

» Données qui circulent dans le pipeline

» Appelés datasets

• Objets "process"» Modules ou composants algorithmiques du pipeline

Process A

dataset A dataset B

Process B Process C

sortie

entrée

Page 20: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Objets ProcessObjet

Process

Source Filter Mapper

Démarre le pipeline•Lecture de données externes (images)•Génération de nouvelles données (graphiques)

Traite les objets donnée•Reçoit une ou plusieurs entrées•Génère une ou plusieurs sorties

Finit le pipeline•Génère des primitives graphiques•Communique le pipeline de visualisation avec le modèle graphique

Source Filter Mapper

aucune entrée

1 sortie

1 entrée

1 sortie

1 entrée

aucune sortie

Page 21: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Pipeline de visualisation

Source

Source

objet data

objet data

Filter

Filter

objet data

objet data

Filter

objet data

MapperModèle

graphique

Page 22: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Exemplecatch {load vtktcl};source vtkInt.tcl;source colors.tcl

vtkSphereSource sphere sphere SetRadius 5 sphere SetThetaResolution 36 sphere SetPhiResolution 18

vtkPolyDataMapper isoMapper isoMapper SetInput [sphere GetOutput] isoMapper ScalarVisibilityOn

vtkActor isoActor isoActor SetMapper isoMapper eval [isoActor GetProperty] SetColor $peacock

vtkRenderer ren1 ren1 AddActor isoActor ren1 SetBackground 1 1 1

vtkRenderWindow renWin renWin AddRenderer ren1 renWin SetSize 500 500

vtkRenderWindowInteractor iren iren SetRenderWindow renWin iren Initialize

Source

Mapper

Actor

Renderer

Render Window

Page 23: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Objets Data ou Datasets

Un dataset est composé de :• Structure topologique (liste de cells)

» Détermine la forme de l'objet (triangle, sphère, maillage, etc.)

» Ne varie pas avec certaines transformations géométriques (translation, rotation et changement d'échelle)

» Un objet contient une ou plusieurs cells

• Structure géométrique (liste de points)» Instanciation de la structure topologique

» Coordonnées des points qui conforment les cells

• Attributs» Information complémentaire associée aux points ou aux cells

(température en un point, masse d'une cell, etc)

objet data ou dataset

Page 24: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Cells Atomes qui conforment un dataset

Une cell est une organisation topologique de points (coordonnées x,y,z)

Définie par : • Type

• Liste ordonnée de points

Maillage = liste de triangles

Triangle = liste de points

Objet

Cell

0

1

3

2

TétraèdreHexaèdre

0 1

34

5

67

2

Page 25: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Types de cells

Vertex

Polyvertex

Line

Polyline

Triangle

Triangle Strip

Quadrilateral

Pixel

Polygon

Tetrahedron

Hexahedron

Voxel

Page 26: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Types de Datasets

vtkStructuredPointsImages 2D et 3D

Points structurés Grille rectiligne

vtkRectilinearGridMaillage carré

vtkStructuredGridMaillage 2D

Grille structurée Données polygonales

vtkPolyDataPoints, lignes,polygones

vtkUnstructuredGridMaillage 2D / 3D non structuré

Grille non structurée

Page 27: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Exemples de maillages

Les cells peuvent avoir des différentes formes et tailles• 2D : triangles, quadrilatéraux, ...

• 3D : tétraèdres, hexaèdres, pyramides, …

Les maillages peuvent contenir un ou plusieurs type de cells

Page 28: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Type des attributs associés aux points et aux cells d'un dataset

vtkScalarsValeur simple

Scalaires vtkVectors

Magnitude etdirection (3D)

Vecteur

(u,v,w)vtkNormalsDirection (3D)

Normal

(nx,ny,nz)|n| = 1

vtkTCoordsCorrespondance entre un indice et une carte de textures

Coordonnée de texture

s

t

2D: (u,v)3D: (u,v,w)

vtkTensorsMatrice n x n

Tenseur

a11 a12 a13

a21 a22 a23

a31 a32 a33

Tableau de données

vtkFieldDataTableau de tableauxChaque tableau peut être dedifférent type

Tableau 0 Tableau 1 Tableau n-1. . .

Page 29: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Modèle Graphique

Page 30: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Modèle graphique

Objectif• Transformer des données graphiques en images et les

afficher à l'écran

Regroupe les caractéristiques d'un système graphique 3D (infographie)

Les principales classes VTK du modèle graphique:• Render Window

• RendererLight

Camera

Actor» Property

» Transform

» Mapper

Page 31: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Modèle graphiqueRender Window

Renderer :

Actor : PropertyTransformMapper

CameraLight

Page 32: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Render Window

Gère la(s) fenêtre(s) dans laquelle on va afficher les images ou les objets graphiques

Fonctionnalité par défaut d'une fenêtre windows

Indépendante des dispositifs graphiques

Gère l'ensemble de renders contenus dans la fenêtre• Plusieurs renderers peuvent dessiner dans une même fenêtre (render

window) pour créer une scène (image finale)

Renderer

Page 33: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Classe vtkRenderWindow

Méthodes

• Ajouter / Supprimer un renderer• AddRenderer (vtkRenderer)

• RemoveRenderer (vtkRenderer)

• Configuration de l'écran• FullScreenOn ()

• FullScreenOff ()

• BordersOn ()

• BordersOff ()

Page 34: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Renderer Coordonne la(s) source(s) de lumière, la camera et les actors pour

générer l'image d'une scène

Une scène comporte :• Au moins un actor, une camera et une source de lumière• Si les objets camera et light ne sont pas définis, ils sont créés

automatiquement par le renderer

Actor : ce que l'on voit

Camera : détermine comment projeter une géométrie 3D sur une image 2D

Light : représente et manipule l'éclairage de la scène (en 3D)

Page 35: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Classe vtkRenderer Méthodes

• Ajouter/Supprimer des actors et des lights• AddActor (vtkActor) / RemoveActor (vtkActor)

• AddLight (vtkLight) / RemoveLight (vtkLight)

• Déterminer la camera à utiliser pour le rendu• SetActiveCamera (vtkCamera)

• Créer l'image résultant du rendu• Render

• Conversion de coordonnées• ViewToWorld (float, float, float) / void WorldToView (float, float, float)

x

y

z

x

y

Monde Vue

Page 36: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Classe vtkLight

Méthodes• Fixer la couleur de la lumière

• SetColor (float ,float ,float) / GetColor ()

• Déterminer la position de la source• SetPosition (float ,float ,float ) / GetPosition ()

• Définir l'intensité (de 0 à 1)• SetIntensity (float ) / GetIntensity ()

• Allumer / Éteindre• SwitchOn ()

• SwitchOff ()

Page 37: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Classe vtkCamera Méthodes

• Fixer la position de la camera en coordonnées monde• SetPosition (float ,float ,float ) / GetPosition ()

• Déterminer la position du point focal de la camera• SetFocalPoint (float ,float ,float ) / GetFocalPoint ()

• Calculer la distance entre la position de la camera et celle du point focal

• ComputeDistance ()

Direction de projectionPoint focal

Position

Plan frontal de clipping

Plan arrière de clipping

Page 38: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Actor

Objet dessiné par un renderer dans une scène

Un actor ne représente pas directement sa géométrie ni son apparence

Celles-ci sont définies en termes de :• Property• Mapper• Transform

Actor

Page 39: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Classe vtkActor Méthodes

• Associer l'objet property qui détermine les propriétés d'apparence de l'actor

• SetProperty (vtkProperty) / GetProperty ()» Un objet property est crée par défaut

» Plusieurs actors peuvent partager le même objet property

• Associer l'objet mapper qui détermine la géométrie de l'actor• SetMapper (vtkMapper) / GetMapper ()

• Définir la matrice de transformations qui détermine l'échelle, la position et l'orientation de l'actor

• SetUserMatrix (vtkMatrix4x4 *)

Généralement• Il ne faut pas définir explicitement les propriétés ni les

transformations. Des valeurs par défaut son déterminées lors de la création de l'actor

Page 40: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Property

Détermine l'apparence de la surface d'un actor

Classe VTK : vtkProperty

Méthodes• Représentation de la géométrie de la surface

• SetRepresentationToPoints ()

• SetRepresentationToWireframe ()

• SetRepresentationToSurface ()

• Déterminer la couleur de la surface• SetColor (float ,float ,float )

• Fixer l'opacité de la surface (0 transparent, 1.0 opaque)• SetOpacity (float )

Page 41: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Mapper Chargé du rendu (rendering)

Lie le modèle de visualisation et le modèle graphique• Détermine la géométrie de l'actor

» Combinaison de points (sommets), lignes, polygones, etc

• Définit la couleur des sommets» Fait référence à une palette de couleurs

Tout actor doit avoir un mapper associé pour pouvoir être affiché à l'écran

Classes VTK : vtkMapper, vtkPolyDataMapper, vtkDataSetMapper

Page 42: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Classe vtkPolyDataMapper

Méthodes• Spécifier les données d'entrée au mapper (données à afficher)

• SetInput (vtkPolyData)

• Associer la palette de couleurs• SetLookupTable (vtkLookupTable)

• Créer une palette de couleurs par défaut• CreateDefaultLookupTable ()

• Déterminer si le rendu est fait de manière immédiate ou pas• ImmediateModeRenderingOn ()

• ImmediateModeRenderingOff ()

Page 43: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Transform

Translation Changement d'échelle Rotation

x

y

z

w

tx

ty

tz

x

y

z

'

'

'

'

1 0 0

0 1 0

0 0 1

0 0 0 1 1

Translation (tx,ty,tz)

Ts

sx

sy

sz

0 0 0

0 0 0

0 0 0

0 0 0 1Chgt d'échelle (sx,sy,sz)

TRx

1 0 0 0

0 0

0 0

0 0 0 1

cos sin

sin cos

Rotation autour de x

Garde une pile de matrices de transformation

Une seule matrice courante de transformation

Fournit de méthodes pour effectuer les opérations de translation, changement d'échelle et rotation

Page 44: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Classe vtkTransform

Méthodes• Créer d'une matrice identité

• Identity ()

• Créer une matrice de rotation et la concaténer avec la matrice courante de transformation

• RotateX (float), RotateY (float ), RotateZ (float )

• Changer d'échelle la matrice courante de transformation• Scale (float ,float ,float )

• Déplacer la matrice courante de transformation• Translate (float ,float ,float )

• Transposer la matrice courante de transformation • Transpose ()

• Invertir la matrice courante de transformation • Inverse ()

Page 45: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Modèle de Traitement

Page 46: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Modèle de traitement

Objectif• Traitement d'images

Implémentation particulière du pipeline de visualisation pour le traitement de datasets de type "Points structurés" (vtkStructuredPoints)

• 2D» Images

» Bitmaps

• 3D» Volumes (piles de datasets 2D)

Classes spécialisées pour :• Lecture

• Ecriture

• Affichage• Traitement

Page 47: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Lecture d'images (2D et 3D)

vtkImageReader• Lecture de n'importe quel type d'image

• Il faut indiquer les dimensions et le type de l'image (pour sauter l'entête)

• Les volumes sont lus comme une séquence d'images

• Possibilité de lire un région d'intérêt (ROI/VOI)

vtkBMPReader• Images BMP

vtkTIFFReader• Images TIFF

Page 48: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Exemple de lecture

vtkImageReader monReader

monReader SetDataByteOrderToLittleEndian

monReader SetDataExtent 0 255 0 255 34 85

monReader SetFilePrefix "000"

monReader SetFilePattern "%s%d.ima"

monReader SetDataScalarTypeToUnsignedShort

monReader Update

Page 49: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Écriture d'images

vtkImageWriter• Ecriture de n'importe quel type d'image

• Le type de l'image à sauvegarder est le même que celui de l'image en entrée

• Les dimensions déterminent si les données doivent être sauvegardés en plusieurs fichiers

vtkBMPWriter

vtkTIFFWriter

Page 50: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Affichage d'images

Mapper• vtkImageMapper

• vtkDataSetMapper

• vtkPolyDataMapper

• vtkVolumeMapper

Actor• vtkActor

• vtkActor2D

Renderer• vtkRenderer

Page 51: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Traitement

vtkImageAnisotropicDiffusion2D/3D• Lissage par la méthode de diffusion anisotrope

vtkImageContinuousDilate3D (vtkImageContinuousErode3D)

• Opérations morphologiques de dilatation/érosion

vtkImageCityBlockDistance • Carte de distances 1,2 or 3D

vtkImageFFT• Transformée de Fourier

vtkImageGaussianSmooth• Filtrage gaussien

Page 52: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Traitement

vtkImageGradient• Gradient de l'image

vtkImageMarchingCubes• Génération d'isosurfaces (rendu de surfaces)

vtkImageMedian3D• Filtrage médian

vtkImageResample• Re-échantillonnage d'une image avec interpolation linaire

vtkImageSkeleton2D• Squelettisation d'images 2D

Page 53: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Traitement

vtkImageSobel2D/3D• Opérateur de sobel

vtkImageThreshold• Seuillage

vtkVolumeRayCastIsosurfaceFunction• Rendu surfacique d'un volume

vtkVolumeRayCastMIPFunction• Création de l'image MIP (maximum intensity projection)

d'un volume

Page 54: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Exemple d'une Application

Page 55: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Tcl/Tk & VTK & C++

Page 56: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Vtk & C++ VTK est une librairie de classes C++

• Aucun problème de communication

Pour programmer :• Inclure les fichier "headers" correspondants (.h)• Programmer en C++

#include "vtk.h"

#include "vtkImageReader.h"

#include "vtkImageData.h"

#include "vtkImageCache.h"

#include "vtkScalars.h"

extern "C" {

#include "idvol.h"

}

Pour programmer en même temps avec libido (C)

Page 57: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

VTK et Tcl/Tk

En Tcl• Charger la librairie (load vtktcl)

Pour chaque classe VTK• Il existe une nouvelle commande Tcl pour créer les objets• Une fois l'objet est crée, le nom de l'objet devient une commande pour appeler ses méthodes

Tcl/TkLibrairie de classes C++

(compilée)

Composant de communication avec des langages interpretés : Tcl/Tk, Java,

Python

VTK

Page 58: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Exemple

load vtktcl

vtkActor actorToto

actorToto print

actorToto SetDebug 1

puts [actorToto GetDebug]

set property [actorToto GetProperty]

$property Print

$property SetColor 1 0 0

puts [$property GetColor]

Charger la librairie

Commande Tcl vtkActorNouvelle commande actorToto

Nouvelle commande $property

Page 59: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Interface graphique du logiciel

Normalement• Les "Render Window" sont des fenêtres indépendantes

• Le logiciel aura une fenêtre séparée pour chaque render window

Pour combiner les Render Window (de VTK) et les objets graphiques d'interface Tk dans une seule fenêtre

• Widget vtkTkRenderWidget» C'est un widget Tk comme les autres

» Possède une méthode spéciale pour communiquer avec VTK

vtkRenderer monRenderer

vtkTkRenderWidget .maFenetre -width 300 -height 300

set RenWin [.maFenetre GetRenderWindow]

$RenWin AddRenderer monRenderer

Page 60: Cours Vtk Marcela Hernández Hoyos CREATIS Janvier 2000.

Communication avec DLLs

DLL C++ avec VTKLogiciel Tcl/Tk

VTK

VTK

Création d'un objet VTK en Tcl/Tk et manipulation en C++

•Récupérer le pointeur de l'objet (adresse) avec la méthode print•Passer l'adresse à la fonction de la dll (avec le cast correspondant)