POV-Ray : Newsgroups : povray.general : Calling C or C++ functions from Povray : Calling C or C++ functions from Povray Server Time
26 Apr 2024 17:22:40 EDT (-0400)
  Calling C or C++ functions from Povray  
From: Josh
Date: 14 May 2020 02:00:01
Message: <web.5ebcdc8f536775f6dc1270cd0@news.povray.org>
Hi all,

Just curious, is there a way to have Povray call an external C or C++ (compiled)
function? I have a series of functions used in an isosurface, that get layered
so many times that they are extremely slow. I'm sure they can be written in C or
C++ and run a lot faster, if Povray can call C functions...

Here are all the functions just for fun ;) ...

#declare Q = function(x,y,z,Rx,Ry,Rz) {sqrt( pow(max(abs(x)-Rx,0),2) +
pow(max(abs(y)-Ry,0),2) + pow(max(abs(z)-Rz,0),2) )}

#declare QX = function (x, Rx) {max(abs(x)-Rx, 0)}
#declare QY = function (y, Ry) {max(abs(y)-Ry, 0)}
#declare QZ = function (z, Rz) {max(abs(z)-Rz, 0)}

#declare BOX = function (x,y,z,Rx,Ry,Rz) {Q (x,y,z, Rx/2, Ry/2, Rz/2) + min(max(
QX(x, Rx/2), max(QY(y, Ry/2), QZ(z, Rz/2)) ), 0)}

#declare ASTER = function {min(BOX(x-0*Sz,y-0*Sz,z-0*Sz,Sz,Sz,Sz),
BOX(x-1*Sz,y-0*Sz,z-0*Sz,Sz,Sz,Sz), BOX(x-2*Sz,y-0*Sz,z-0*Sz,Sz,Sz,Sz),
BOX(x-2*Sz,y-1*Sz,z-0*Sz,Sz,Sz,Sz), BOX(x-2*Sz,y-0*Sz,z-1*Sz,Sz,Sz,Sz),
BOX(x-2*Sz,y-1*Sz,z-1*Sz,Sz,Sz,Sz), BOX(x-2*Sz,y+1*Sz,z-0*Sz,Sz,Sz,Sz),
BOX(x+2*Sz,y-0*Sz,z-0*Sz,Sz,Sz,Sz), BOX(x+1*Sz,y-0*Sz,z-0*Sz,Sz,Sz,Sz),
BOX(x+2*Sz,y-1*Sz,z-0*Sz,Sz,Sz,Sz), BOX(x+2*Sz,y-0*Sz,z-1*Sz,Sz,Sz,Sz),
BOX(x+1*Sz,y+1*Sz,z-0*Sz,Sz,Sz,Sz))}

Josh


Post a reply to this message

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