Hi.

Do you intend to have realistic looking bones?  If so, then you will
want to use modeling software (http://blender.org for example) to
create your 3D models and then import the models into your Java3D
scene.  It's not easy to create complex organic shapes mathematically
in raw Java3D.

Best luck,
Todd

On Jan 6, 2004, at 2:09 PM, sikander hayat wrote:

Hi
Sometime back you wrote that you have a code that generates a rounded
stick like object.Vis a vis that message,I want to know,how can I
implement irregular surfaces in java 3d for developing a structure of
human bones...

Kindly help me out.

On Mon, 08 Dec 2003 Paul Pantera wrote :
I can help you with GeometryInfo problems.

I have some code that generates a 'rounded stick' like object I use
for
creating molecular stick models. The GeometryInfo class interests me
and
looks like it could save me a lot of work. That is if I could get it
to
work.

Case 1:

def createNormals(self):
 gi = GeometryInfo(GeometryInfo.TRIANGLE_ARRAY| LineArray.COLOR_3)

The prmitive sent to GeometryInfo is one of the five primitives listed in the javadoc (POLYGON_ARRAY, QUAD_ARRAY, TRIANGLE_ARRAY, TRIANGLE_FAN_ARRAY, or TRIANGLE_STRIP_ARRAY). Why are you or'ring GeometryInfo.TRIANGLE_ARRAY with LineArray.COLOR_3? That's wrong.

GeometryInfo will know that you have colors when you set the colors
using setColors().  You do not need to send a flag to the constructor
to inform it that you will be using colors.  GeometryInfo was
designed to be more flexible than GeometryArray, and this is one
example of how I tried to achieve that.

 gi.setCoordinates(self.verts)
 nm = NormalGenerator()

NormalGenerator nm = new NormalGenerator();


 nm.generateNormals(gi)
 si = Stripifier()

Stripifier si = new Stripifier();


 si.stripify(gi)
 return gi.getGeometryArray(1,0,0)

return gi.getGeometryArray(true, false, false);



Result:


java.lang.IllegalArgumentException: StripCounts inconsistent with
primitive
at com.sun.j3d.utils.geometry.GeometryInfo.checkForBadData

This error means that you have set stripCounts on a primitive that doesn't require it, or vice-versa. TRIANGLE_ARRAY and QUAD_ARRAY don't require stripCounts, the other three primitive types do.

GeometryInfo is confused about the primitive because you sent the
LineArray.COLOR_3 flag to the constructor.  LineArray.COLOR_3 is
4 and GeometryInfo.TRIANGLE_ARRAY is 1 so you are sending 1 | 4 = 5
to the constructor.  This corresponds to GeometryInfo.POLYGON_ARRAY
so GeometryInfo is expecting polygons.  This is why it needs a
stripCounts arry, which you didn't set, hence the error.  (To find
these values, in the javadoc, click on the constant and then click
on "See Also: Constant Field Values."  See here:

http://hendrix.lems.brown.edu/~arw/online-docs/java3d-1.3.0-docs/
constant-values.html


Yet it works if I create a GeometryArray.TRIANGLE_ARRAY with the
same data
it works.

Huh ?

The primitive type constants for GeometryInfo are separate from those for GeometryArray. You need to use the GeometryInfo primitive constants for GeometryInfos and the GeometryArray constants for GeometryArrays.

-Paul Pantera
 Chief Architect, PresidioLabs, Inc.
 1-650-766-1517

======================================================================
=====
To unsubscribe, send email to [EMAIL PROTECTED] and include in
the body
of the message "signoff JAVA3D-INTEREST".  For general help, send
email to
[EMAIL PROTECTED] and include in the body of the message "help".


Sikander Hayat
F/0 Engineering and Technology
Jamia Millia Islamia
New Delhi
----------------------------------- +
LIVE BY THE SWORD,DIE BY THE SWORD  |
----------------------------------- +

=======================================================================
====
To unsubscribe, send email to [EMAIL PROTECTED] and include in the
body
of the message "signoff JAVA3D-INTEREST".  For general help, send
email to
[EMAIL PROTECTED] and include in the body of the message "help".

=========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to