File: TestGenericVertexAttributesCg.tcl

package info (click to toggle)
paraview 4.0.1-1~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 526,572 kB
  • sloc: cpp: 2,284,430; ansic: 816,374; python: 239,936; xml: 70,162; tcl: 48,295; fortran: 39,116; yacc: 5,466; java: 3,518; perl: 3,107; lex: 1,620; sh: 1,555; makefile: 932; asm: 471; pascal: 228
file content (96 lines) | stat: -rw-r--r-- 2,528 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# tests the support to pass generic vertex attributes to be used in Cg shaders.

set xmlMaterial {<?xml version="1.0" encoding="UTF-8"?>
<Material name="GenericAttributes1">
  <Shader
    scope="Vertex"
    name="VertexShader"
    location="Inline"
    language="Cg"
    entry="main">
      <MatrixUniform name="ModelViewProj"
        type="State"
        number_of_elements="2"
        value="CG_GL_MODELVIEW_PROJECTION_MATRIX CG_GL_MATRIX_IDENTITY" />
      <MatrixUniform name="ModelViewIT"
        type="State"
        number_of_elements="2"
        value="CG_GL_MODELVIEW_MATRIX CG_GL_MATRIX_INVERSE_TRANSPOSE" />

      struct appin
      {
          float4 Position : POSITION;
          float3 Normal   : NORMAL;
      };

      // define outputs from vertex shader
      struct vertout
      {
          float4 HPosition : POSITION;
          float4 Color0    : COLOR0;
      };

      vertout main(appin IN,
                   uniform float4x4 ModelViewProj,
                   uniform float4x4 ModelViewIT)
      {
        vertout OUT;

        // transform vertex position into homogenous clip-space
        OUT.HPosition = mul(ModelViewProj, IN.Position);

        OUT.Color0.xyz = normalize(IN.Normal);
        OUT.Color0.a = 1.0;
        return OUT;
      }
  </Shader>
</Material>
}

package require vtk
package require vtkinteraction

vtkRenderWindow renWin
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin

vtkRenderer renderer
renWin AddRenderer renderer

vtkSphereSource src1
src1 SetRadius 5
src1 SetPhiResolution 20
src1 SetThetaResolution 20

vtkBrownianPoints randomVectors
randomVectors SetMinimumSpeed 0
randomVectors SetMaximumSpeed 1
randomVectors SetInputConnection [src1 GetOutputPort]

vtkPolyDataMapper mapper
mapper SetInputConnection [randomVectors GetOutputPort]

vtkActor actor
actor SetMapper mapper
# Load the material. Here, we are loading a material
# defined in the Vtk Library. One can also specify
# a filename to a material description xml.
[actor GetProperty] LoadMaterialFromString $xmlMaterial

# Set red color to show if shading fails.
[actor GetProperty] SetColor 1.0 0 0

# Turn shading on. Otherwise, shaders are not used.
[actor GetProperty] ShadingOn

# Map PointData.BrownianVectors (all 3 components) to IN.Normal
mapper MapDataArrayToVertexAttribute "IN.Normal" "BrownianVectors" 0 -1

renderer AddActor actor
renderer SetBackground 0.5 0.5 0.5
renWin Render

[renderer GetActiveCamera] Azimuth -50
[renderer GetActiveCamera] Roll 70
renWin Render
wm withdraw .