[osg-users] Utility functions

2008-09-09 Thread ami guru
Hello forum,


Are there any utility functions for drawing spheres, planes , boxes ,cubes
etc. within OSG's framework?



Sajjad
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Utility functions

2008-09-09 Thread Vijay Patil
On Wed, Sep 10, 2008 at 8:16 AM, ami guru [EMAIL PROTECTED] wrote:
 Hello forum,


 Are there any utility functions for drawing spheres, planes , boxes ,cubes
 etc. within OSG's framework?



 Sajjad

 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org



To draw regular shapes in OSG, refer to classes derived to
'osg::Shape'. Following is a segment from a program while
experimenting with those classes.

Also to find out if a particular shape is implemented in OSG, I
usually refer to HTML documentation (Generated using Doxygen). Just
refer to all the classes.

--
osg::ref_ptrosg::MatrixTransform draw_shape(std::string shape, float x)
{
/* Geode containing a shape. */
osg::ref_ptrosg::Geode geode = new osg::Geode;
osg::ref_ptrosg::ShapeDrawable sd;

if(shape == box) {

osg::ref_ptrosg::Box box = new osg::Box(osg::Vec3f(), 5.0);
sd = new osg::ShapeDrawable(box.get());
geode-addDrawable(sd.get());

} else if(shape == cylinder) {

osg::ref_ptrosg::Cylinder cylinder = new
osg::Cylinder(osg::Vec3f(), 2.0, 5.0);
sd = new osg::ShapeDrawable(cylinder.get());
geode-addDrawable(sd.get());

} else if(shape == capsule) {

osg::ref_ptrosg::Capsule capsule = new 
osg::Capsule(osg::Vec3f(), 2.0, 5.0);
sd = new osg::ShapeDrawable(capsule.get());
geode-addDrawable(sd.get());

} else if(shape == cone) {

osg::ref_ptrosg::Cone cone = new osg::Cone(osg::Vec3f(), 2.0, 
5.0);
sd = new osg::ShapeDrawable(cone.get());
geode-addDrawable(sd.get());

} else if(shape == sphere) {

osg::ref_ptrosg::Sphere sphere = new 
osg::Sphere(osg::Vec3f(), 2.0);
sd = new osg::ShapeDrawable(sphere.get());
geode-addDrawable(sd.get());
}

/* Use matrix tranform to place the object at desired position
 * from origin. */
osg::ref_ptrosg::MatrixTransform mtleft = new osg::MatrixTransform;
mtleft-setDataVariance(osg::Object::STATIC);

osg::Matrix m;
m.makeTranslate(x, 0.0, 0.0);
mtleft-setMatrix(m);

/* Add geode to matrix transform object. */
mtleft-addChild(geode.get());

return mtleft.get();
}



-- 
Vijay Patil
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Utility functions

2008-09-09 Thread xuyuanzhen1
Hello all,
 
  But how to take texture to this shapes?For example,I draw a cylinder by 
following code:
---
osg::ref_ptr osg::Cylinder  cylinder = new
osg::Cylinder(osg::Vec3f(), 2.0, 5.0);
sd = new osg::ShapeDrawable(cylinder.get());
geode- addDrawable(sd.get());
---
How I take texture to only the top face not all faces?

Best Regards.

2008-09-10 



xuyuanzhen1 



发件人: Vijay Patil 
发送时间: 2008-09-10  12:44:43 
收件人: OpenSceneGraph Users 
抄送: 
主题: Re: [osg-users] Utility functions 
 
On Wed, Sep 10, 2008 at 8:16 AM, ami guru  [EMAIL PROTECTED]  wrote:
 Hello forum,


 Are there any utility functions for drawing spheres, planes , boxes ,cubes
 etc. within OSG's framework?



 Sajjad

 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org



To draw regular shapes in OSG, refer to classes derived to
'osg::Shape'. Following is a segment from a program while
experimenting with those classes.

Also to find out if a particular shape is implemented in OSG, I
usually refer to HTML documentation (Generated using Doxygen). Just
refer to all the classes.

--
osg::ref_ptr osg::MatrixTransform  draw_shape(std::string shape, float x)
{
/* Geode containing a shape. */
osg::ref_ptr osg::Geode  geode = new osg::Geode;
osg::ref_ptr osg::ShapeDrawable  sd;

if(shape == box) {

osg::ref_ptr osg::Box  box = new osg::Box(osg::Vec3f(), 5.0);
sd = new osg::ShapeDrawable(box.get());
geode- addDrawable(sd.get());

} else if(shape == cylinder) {

osg::ref_ptr osg::Cylinder  cylinder = new
osg::Cylinder(osg::Vec3f(), 2.0, 5.0);
sd = new osg::ShapeDrawable(cylinder.get());
geode- addDrawable(sd.get());

} else if(shape == capsule) {

osg::ref_ptr osg::Capsule  capsule = new osg::Capsule(osg::Vec3f(), 2.0, 5.0);
sd = new osg::ShapeDrawable(capsule.get());
geode- addDrawable(sd.get());

} else if(shape == cone) {

osg::ref_ptr osg::Cone  cone = new osg::Cone(osg::Vec3f(), 2.0, 5.0);
sd = new osg::ShapeDrawable(cone.get());
geode- addDrawable(sd.get());

} else if(shape == sphere) {

osg::ref_ptr osg::Sphere  sphere = new osg::Sphere(osg::Vec3f(), 2.0);
sd = new osg::ShapeDrawable(sphere.get());
geode- addDrawable(sd.get());
}

/* Use matrix tranform to place the object at desired position
 * from origin. */
osg::ref_ptr osg::MatrixTransform  mtleft = new osg::MatrixTransform;
mtleft- setDataVariance(osg::Object::STATIC);

osg::Matrix m;
m.makeTranslate(x, 0.0, 0.0);
mtleft- setMatrix(m);

/* Add geode to matrix transform object. */
mtleft- addChild(geode.get());

return mtleft.get();
}



-- 
Vijay Patil
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Utility functions

2008-09-09 Thread Gordon Tomlinson
Please search the forum email archives this TOPIC has been talked about
100’s of times 

 

These shapes are not meant to be used as drawing and textured  shapes.

 

 

__
Gordon Tomlinson 

 mailto:[EMAIL PROTECTED] [EMAIL PROTECTED]
IM:  mailto:[EMAIL PROTECTED] [EMAIL PROTECTED]
 http://www.vis-sim.com/ www.vis-sim.com
http://www.gordontomlinson.com/ www.gordontomlinson.com 

__

 

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of xuyuanzhen1
Sent: Wednesday, September 10, 2008 12:48 AM
To: OpenSceneGraph Users
Subject: Re: [osg-users] Utility functions

 

Hello all,

 

  But how to take texture to this shapes?For example,I draw a cylinder
by following code:

---

osg::ref_ptr osg::Cylinder  cylinder = new

osg::Cylinder(osg::Vec3f(), 2.0, 5.0);

sd = new osg::ShapeDrawable(cylinder.get());

geode- addDrawable(sd.get());

---

How I take texture to only the top face not all faces?

 

Best Regards.

 

2008-09-10 

  _  

xuyuanzhen1 

  _  

发件人: Vijay Patil 

发送时间: 2008-09-10  12:44:43 

收件人: OpenSceneGraph Users 

抄送: 

主题: Re: [osg-users] Utility functions 

On Wed, Sep 10, 2008 at 8:16 AM, ami guru  [EMAIL PROTECTED]  wrote:

 Hello forum,

 

 

 Are there any utility functions for drawing spheres, planes , boxes ,cubes

 etc. within OSG's framework?

 

 

 

 Sajjad

 

 ___

 osg-users mailing list

 osg-users@lists.openscenegraph.org

 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

 

 

 

To draw regular shapes in OSG, refer to classes derived to

'osg::Shape'. Following is a segment from a program while

experimenting with those classes.

 

Also to find out if a particular shape is implemented in OSG, I

usually refer to HTML documentation (Generated using Doxygen). Just

refer to all the classes.

 

--

osg::ref_ptr osg::MatrixTransform  draw_shape(std::string shape, float x)

{

/* Geode containing a shape. */

osg::ref_ptr osg::Geode  geode = new osg::Geode;

osg::ref_ptr osg::ShapeDrawable  sd;

 

if(shape == box) {

 

osg::ref_ptr osg::Box  box = new osg::Box(osg::Vec3f(), 5.0);

sd = new osg::ShapeDrawable(box.get());

geode- addDrawable(sd.get());

 

} else if(shape == cylinder) {

 

osg::ref_ptr osg::Cylinder  cylinder = new

osg::Cylinder(osg::Vec3f(), 2.0, 5.0);

sd = new osg::ShapeDrawable(cylinder.get());

geode- addDrawable(sd.get());

 

} else if(shape == capsule) {

 

osg::ref_ptr osg::Capsule  capsule = new osg::Capsule(osg::Vec3f(), 2.0,
5.0);

sd = new osg::ShapeDrawable(capsule.get());

geode- addDrawable(sd.get());

 

} else if(shape == cone) {

 

osg::ref_ptr osg::Cone  cone = new osg::Cone(osg::Vec3f(), 2.0, 5.0);

sd = new osg::ShapeDrawable(cone.get());

geode- addDrawable(sd.get());

 

} else if(shape == sphere) {

 

osg::ref_ptr osg::Sphere  sphere = new osg::Sphere(osg::Vec3f(), 2.0);

sd = new osg::ShapeDrawable(sphere.get());

geode- addDrawable(sd.get());

}

 

/* Use matrix tranform to place the object at desired position

 * from origin. */

osg::ref_ptr osg::MatrixTransform  mtleft = new osg::MatrixTransform;

mtleft- setDataVariance(osg::Object::STATIC);

 

osg::Matrix m;

m.makeTranslate(x, 0.0, 0.0);

mtleft- setMatrix(m);

 

/* Add geode to matrix transform object. */

mtleft- addChild(geode.get());

 

return mtleft.get();

}

 

 

 

-- 

Vijay Patil

___

osg-users mailing list

osg-users@lists.openscenegraph.org

http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

 

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org