POV-Ray : Newsgroups : povray.general : simple syntax question : simple syntax question Server Time
4 Nov 2024 12:59:14 EST (-0500)
  simple syntax question  
From: D  Stimits
Date: 11 Dec 2003 15:47:14
Message: <3fd8d7d2@news.povray.org>
I'm very new to POVray, and using version 3.5 on Linux. In general, I'm 
a C and C++ programmer, and am trying to do something in POVray that 
would be a simple procedural call in C.

I'm creating a scene of a set of nodes and paths between nodes for 
creation of a picture something like the "traveling salesman" problem. A 
path is traced through a series of locations (nodes) on given paths 
(edges), finding the minimum path that visits each node exactly once. It 
looks something like a 3D chess board with selected edges being placed 
between squares, and some squares missing.

I want to declare a global variable:
#declare Node_Center = < 0.0, 0.0, 0.0 >;

And then prior to calling a macro inside of an object {} that renders a 
node icon based on location of Node_Center, I want to call another macro 
(such as "Translate_Left") that alters the value of Node_Center in one 
direction (partially desired because of different handedness of POVray 
axis and the input data axis), taking into account a scale. The problem 
is I cannot seem to find a way to actually alter the content of 
Node_Center that is not an error. I have to alter the value of 
Node_Center before calling:

object {
   Render_Node (Node_Center)
}

Then the outside application can write the scene file based on something 
like a series of:

Translate_Left ()
object {
   Render_Node (Node_Center)
}

Translate_Up ()
object {
   Render_Node (Node_Center)
}

The application itself then merely knows to go left, right, up, or down, 
and does not have to keep track of Node_Center, nor does the application 
need to understand the difference in axis handedness or scaling between 
data and POVray. Is it even possible to alter a global declaration like 
this from outside of the object? If I can only do this from inside of an 
object, how can I alter my global value prior to rendering the node's icon?


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.