the camera allows you to get a picture from the world and display it on the screen (or process it inside the program)
please note that rendering methods may receive not the real display, but the "virtual" one you created. 3 methods should be implemented in the virtual screen: getWidth, getHeight, drawPixel
please note that when transmitting a virtual display, the camera returns colors in string format, which slows down its operation. this is done for compatibility with old software. however, if your code is ready to accept objects with the Color type, then add the "noCameraEncode" field to the table of your virtual display equal to true. The vdisplay library does this by default. in cases where CustomDraw is used with this flag, your virtual display will receive the actual value from the renderer
this can be used, for example, to save an image to disk (methods for this are already implemented in the image library)
however, if you are just going to display the image on the displays, then provide the camera with a REAL DISPLAY. since transferring the virtual display disables very important camera optimizations
if you want to use the same camera from two different locations, use the camera.fork function to create a new instance with a separate counter and viewport. you can also use camera.fork with the value true to create a copy of all the parameters (fov, step, rotation, etc.)
to connect the camera via the antenna, use cameraTunnel component