source: trunk/ab5.0/ablib/src/Classes/ActiveBasic/OpenGL/Light.ab @ 690

Last change on this file since 690 was 690, checked in by NoWest, 15 years ago

本格的に作り始めました。
まだ、仕様を厳密に決めていないので
これを使って何か作るということはまだしないでください。

(#240)

File size: 1.7 KB
Line 
1#require <gl/gl.sbp>
2Namespace ActiveBasic
3Namespace OpenGL
4
5    '光源を扱うためのクラス
6    Class Light
7    Public
8        Sub Light(num As DWord)
9            number = num
10        End Sub
11
12    Public
13        Sub Ambient(red As Single, green As Single, blue As Single, alpha As Single)
14            Dim color[3] As Single
15            color[0]=red
16            color[1]=green
17            color[2]=blue
18            color[3]=alpha
19            glLightfv(GL_LIGHT0+number,GL_AMBIENT,color)
20        End Sub
21        Sub ConstantAttenuation(rate As Single)
22            glLightf(GL_LIGHT0+number,GL_CONSTANT_ATTENUATION,rate)
23        End Sub
24        Sub SpotCutOff(angle As Single)
25            glLightf(GL_LIGHT0+number,GL_SPOT_CUTOFF,angle)
26        End Sub
27        Sub Diffuse(red As Single, green As Single, blue As Single, alpha As Single)
28            Dim color[3] As Single
29            color[0]=red
30            color[1]=green
31            color[2]=blue
32            color[3]=alpha
33            glLightfv(GL_LIGHT0+number,GL_DIFFUSE,color)
34        End Sub
35        Sub SpotDirection(x As Single, y As Single, z As Single)
36            Dim dir[2] As Single
37            dir[0]=x
38            dir[1]=y
39            dir[2]=z
40            glLightfv(GL_LIGHT0+number,GL_SPOT_DIRECTION,dir)
41        End Sub
42        Sub SpotExponent(exp As Single)
43            glLightf(GL_LIGHT0+number,GL_SPOT_EXPONENT,exp)
44        End Sub
45        Sub LinearAttenuation(rate As Single)
46            glLightf(GL_LIGHT0+number,GL_LINEAR_ATTENUATION,rate)
47        End Sub
48        Sub QuadraticAttenuation(rate As Single)
49            glLightf(GL_LIGHT0+number,GL_QUADRATIC_ATTENUATION,rate)
50        End Sub
51        Sub Specular(red As Single, green As Single, blue As Single, alpha As Single)
52            Dim color[3] As Single
53            color[0]=red
54            color[1]=green
55            color[2]=blue
56            color[3]=alpha
57            glLightfv(GL_LIGHT0+number,GL_SPECULAR,color)
58        End Sub
59       
60    Private
61        number As DWord
62    End Class
63
64End Namespace
65End Namespace
Note: See TracBrowser for help on using the repository browser.