123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- # --- Test 7. Work with 3D nodes. --- #
- import
- nodesnim,
- unittest
- suite "Work with 3D nodes.":
-
- test "Setup window":
- Window("3D nodes test", 1024, 640)
- test "Setup scene":
- build:
- - Scene main
- addMainScene(main)
- test "Register events":
- addKeyAction("forward", "w")
- addKeyAction("back", "s")
- addKeyAction("left", "a")
- addKeyAction("right", "d")
- test "GeometryInstance test":
- build:
- - GeometryInstance cube:
- translation: Vector3(-1, 0, 2)
- color: Color(122, 133, 144, 0.8)
- - GeometryInstance cube1:
- translation: Vector3(2, 0, -2)
- color: Color(144, 144, 122, 0.8)
- - GeometryInstance cube2:
- translation: Vector3(1, 2.5, 1)
- color: Color(144, 111, 144, 0.8)
- - GeometryInstance sphere:
- translation: Vector3(-1, -1, 1)
- color: Color(144, 77, 144, 1.0)
- geometry: GEOMETRY_SPHERE
- - GeometryInstance cylinder:
- translation: Vector3(2, -1, 1)
- color: Color(144, 77, 144, 1.0)
- geometry: GEOMETRY_CYLINDER
- - GeometryInstance polygon:
- translation: Vector3(2, -2, 1)
- color: Color(144, 77, 144, 1.0)
- geometry: GEOMETRY_POLYGON
- points: @[
- Vector3(), Vector3(100, 10, 0), Vector3(0, 10, -10),
- Vector3(100, -10, 10), Vector3(100, 10, 0)
- ]
- getSceneByName("main").addChildren(cube, cube1, cube2, sphere, cylinder, polygon)
- test "Camera3D test":
- build:
- - Node3D root:
- call translate(2, 2, -5)
- - Camera3D camera:
- call:
- setCurrent()
- changeTarget(root)
- root@onInput(self, event):
- if event.isInputEventMouseMotion() and event.pressed:
- camera.rotate(event.xrel*0.25, -event.yrel*0.25)
- root@onProcess(self):
- if isActionPressed("left"):
- root.translate(camera.right * -0.1)
- if isActionPressed("right"):
- root.translate(camera.right * 0.1)
- if isActionPressed("forward"):
- root.translate(camera.front*0.1)
- if isActionPressed("back"):
- root.translate(camera.front*(-0.1))
- getSceneByName("main").addChild(root)
- test "Sprite3D test":
- build:
- - Sprite3D sprite:
- call loadTexture("assets/anim/2.jpg", GL_RGB)
- call translate(-3, -2, 2)
- sprite@onProcess(self):
- sprite.rotateY(0.5)
- getSceneByName("main").addChild(sprite)
- test "Shaders test":
- var shader = GLSLShader(
- """#version 330 core
- layout (location = 0) in vec3 position;
- out vec4 vertexColor;
- void main()
- {
- gl_Position = vec4(position, 1.0);
- vertexColor = vec4(0.5f, 0.0f, 0.0f, 1.0f);
- }""",
- """#version 330 core
- in vec4 vertexColor;
- out vec4 color;
- void main()
- {
- color = vertexColor;
- } """
- )
- shader.use()
- test "Launch window":
- windowLaunch()
|