Sean,
Thanks for your information, I use Chrome to check and read all my email
but without any other clients used. It never happened before, a little bit
strange..
Here is my though regarding your reply, please check it and hope for your
comments.
> Does the openNURBS API provide any means for attaching additional
metadata/attributes/properties to either ON_Brep or individual surfaces?
It could be useful to store the actual thicknesses with the geometry.
Yes, I think this approach is doable. :) I quickly go through the class
definition of ON_Brep, there actually exists a variable, named
*m_brep_user*(about line 3920 in opennurbs_brep.h), available for specific
application use, it can be used for attaching values for brep, also for
each face/vertex/..., their corresponding internal data structure are
ON_BrepFace/ON_BrepVertex/..., they all have its individual application
specified value stored in *m_face_user*(about line 1002 in
opennurbs_brep.h)/*m_vertex_user*(about line 58 in opennurbs_brep.h)/...,
respectively, so that we can assign values for each face/vertex/... .
So I think we can exploit this built-in property and assign the thickness
value for each face in a more convenient way. Please check it again.
> I think we have several lessons learned from the BoT implementation and
don't need to repeat them here.
> Other than 'bot_flags' (not a bot), thickness looks fine iff openNURBS
doesn't have a way to store the thickness data.
If the method mentioned above works well, then we will not need thickness
value array anymore. And the whole data structure will be more neat and
concise. :)
> I don't think face_mode is needed at all any more (probably not for BoT
either...), but could be wrong -- still suggest starting without it.
But the face mode is used to indicate how to append the thickness value to
the hit point in the ray direction when doing ray-tracing? Is it proper to
abandon this flag or we just make it behave in a default way?
> Thickness probably tells us everything we need to know about the mode
(NULL==SOLID, 0==SURFACE, >0==PLATE). If we need to add NOCOS behavior
later (doubtful), that could be an application-specific attribute.
> It also would be good to have a way to store a default/global thickness
applied to all surfaces and stored as a single value, along with the
capability of having per-surface thickness as needed. Whether this is
encapsulated with one field where [0] is all surfaces and [N] is thickness
for 1-indexed surfaces, or as two separate fields (default all + per
surface array) probably doesn't matter much.
Sure, with thickness value we can know everything about the mode. As I
mentioned at the very beginning, if it works, then the *m_brep_user*
defined in ON_Brep can be used for storing global thickness value and
*m_face_user* for each face can be used for storing per-face thickness.
Best,
Bojian
------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
_______________________________________________
BRL-CAD Developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-devel