POV-Ray : Newsgroups : povray.programming : OBJECT* vs Povray Objects : Re: OBJECT* vs Povray Objects Server Time
3 May 2024 21:38:48 EDT (-0400)
  Re: OBJECT* vs Povray Objects  
From: Antonio Ferrari
Date: 20 Oct 2007 10:15:01
Message: <web.471a0c756bd8f8a6fd3e70c30@news.povray.org>
> > union {
> >   sphere { .......... }
> >   sphere { .......... }
> > }
> >
> > In memory the sphere will be indipendent and referenced by two different
> > pointers or in memory I'll find only an OBJECT reference to the union?
>
> I do not know for 3.7 (no source yet), but in previous version, that
> code part would have been a CSG objects mother of two spheres
> objects (these two being linked in a sibling list).
> At each level, you would have found a transformation matrix and a
> pointer to the method of the object.
> And each object/structure might have additional data
>
> >
> > I expect only one pointer to union, since Parse_Inside receives a generic
> > OBJECT*; is it true?
>
> The three objects are presents, and linked. Therefore, the top-level
> pointer is enough to keep track of these objects (and therefore the
> return of the function...).
>
> >
> > - 2 - Let's suppose we are parsing a density inside a media. When
> > Evaluate_TPat is called it receives a pointer to INTERSECTION struct. Is
> > there the possibility to have this pointer not NULL for such a kind of
> > density? I ask this question because I need that INTERSECTION->OBJECT is a
> > pointer to the OBJECT that contains the density that Evaluate_TPat is
> > evaluating.
>
>
> I do not get it. Are you parsing, or rendering ?
> in 3.6, only f_pattern (in fnintern.cpp) call Evaluate_TPat with
> null as intersection.
>

Hi, very useful answers. I haven't resolved the last point because code
arrives still with value NULL sometimes. But I know how to jump this
problem. I scan Frame.Objects finding the object that contains ghe point.
This works for simple objects, but I don't know how to find the
containing-object for CSGs or for objects inside other hollow objects. I
have to improve the search algorithm.

Anyway for simple isolated object I've already been able to implement mi
idea of having a density proportional to the distance of a point from the
surface (it works with merge-CSGs but not with union-CSGs).

ANOTHER QUESTIION - In Evaluate_TPat the functions return values (for
example agate_pattern return values from 0 to 1). The value can be used
with color_map. This value MUST be between 0 and 1 or can be greater than
1?


Post a reply to this message

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