POV-Ray : Newsgroups : povray.programming : POV-Ray C++? : POV-Ray C++? Server Time
23 Apr 2024 09:51:44 EDT (-0400)
  POV-Ray C++?  
From: MiB
Date: 2 Jan 2012 09:15:00
Message: <web.4f01ba3c6f2bacd09be4b6d10@news.povray.org>
Hi,

Although a long-term user of POV-ray, I am new to community activity here, so
please forgive me if this has been discussed before.

Looking at the POV-Ray 3.7 sources I noticed that it extensively uses the
object-oriented C++ standard library (e.g. std::string, std::vector, ...).

However, a quick survey reveals POV-Ray itself is not written in a contemporary
object-oriented style; a lot of pointers to structs are handed around, functions
manipulating data structures are on a global level and not members of classes.

I assume this is due to the C language heritage handed down from the olden DKB
Trace days.

Are there any plans or maybe even actual activity to redesign/refactor POV-Ray
into a class based design? I am aware, this is no trivial work, and there may be
reasons why a class redesign my be shunned here (worries about compatibility,
performance, to mention a few). I am asking to reconsider these worries, if any.

There is a very noticeable tendency of C++ compilers converging to a common
standard, especially in regard to the new C++11 standard. Before, even popular
compilers (say, VC++6) felt like implementing different languages. Now its
different.

I am convinced, the POV-Ray development would profit a lot by introducing a
class based design, maybe it would also be a good idea to start with an UML
architectural model before attempting any code changes in this direction. A
fresh wind in POV-Ray development may result. Correct me if I am wrong, but
POV-Ray seems to be stagnant for years already.

I am ready to volunteer time for this but would like to draw on your opinions
first. Tell me, why my plan is a bad idea or where I can contribute to already
ongoing activity I just failed to see.

best,

   MiB


Post a reply to this message

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