hello, i have 2 files - main.nim and objects.nim main.nim:
import libs/csfml/csfml
import libs/opengl/opengl
import objects
var window = newRenderWindow(videoMode(500, 500), "OpenGL")
window.verticalSyncEnabled = true
opengl.loadExtensions()
var event: Event
while window.open:
while window.pollEvent(event):
case event.kind
of EventType.Resized:
glViewport(0, 0, event.size.width, event.size.height)
of EventType.Closed:
window.close()
else: discard
window.clear Black
glRotatef(1,0,0,1)
var a:object3d;
object3d.draw
window.display()
window.destroy()
objects.nim:
import libs/opengl/opengl
type
object3d = object
proc draw(this: object3d) =
glBegin GL_TRIANGLES; block:
glColor3f(0.0, 1.0, 0.0); glVertex2f(-1.0, 1.0)
glColor3f(1.0, 0.5, 0.0); glVertex2f( 1.0, 0.0)
glColor3f(0.0, 0.5, 1.0); glVertex2f( 0.0, -1.0)
glEnd()
and this code does not work. compiler writes: main.nim(24, 9) Error: undeclared identifier: 'object3d' but why? i used import -
objects
. everything must work, import dirrective adds code from objects.nim to main.nim and everything is should be compiled. please help me, i really dont know, why my code does not want to work
type
object3d*=object
Have you considered reading the fine tutorial?
https://nim-lang.org/docs/tut1.html
As you learn, in Nim like in other languages like Modula or Oberon public symbols in modules have to be marked with asteriks, so try something like
type
object3d* = object
I solved the problem by writing
objects
I solved the problem by writing include objects
Sure, you can do that, but it is not very smart. Why do you ask here when you are not willing to learn something?
I created myself some future problems by writing include objects
FTFY