Skip to main content

History: Ogre Procedural Geometry Library

Source of version: 24

Copy to clipboard
            {DIV(class="clearRight")}{img fileId="1982" align="right" thumb="y" rel="box[g]" width="300" desc="click to enlarge" stylebox="border"}
{DIV}
{DIV(class="clearRight")}{img fileId="1983" align="right" thumb="y" rel="box[g]" width="300" desc="click to enlarge" stylebox="border"}{DIV}
__Ogre Procedural__ is a procedural geometry generation library, targeted at Ogre3D

__Autor:__ [http://www.ogre3d.org/forums/memberlist.php?mode=viewprofile&u=4982|Mikachu] (Michael Broutin)
__Licence:__ MIT License

Source code and downloads you find on the [https://github.com/OGRECave/ogre-procedural|project page].
Documentation : [https://ogrecave.github.io/ogre-procedural/|User Manual and API Reference]
If you have questions, ask in the [http://www.ogre3d.org/addonforums/viewforum.php?f=33|forum].

!!Features

Existing features in current release (0.2):
* Primitives : Box, RoundedBox, Plane, Sphere, IcoSphere, Cylinder, Tube, Capsule, Cone, Torus and Torus knot
* Extrusion
* Lathe
* Triangulation
* Smooth splines by [http://en.wikipedia.org/wiki/B%C3%A9zier_curve|Bézier Curves] (also usable for extrusion)
* Constructive solid geometry in 2D

Planned / not yet in the official release:
* A plug-in for the scene editor ((Ogitor))
* SVG import (currently without Bézier import)
* OpenStreetMap data import
* Object description by XML file (as alternative to source code)


!!Screenshots
{DIV()}{IMG(fileId="2061",thumb="y",rel="box[g]",width="300",align="left",stylebox="border",desc="Rendering of openstreetmap XML data")}{IMG}{DIV} {DIV()}{IMG(fileId="2062",thumb="y",rel="box[g]",width="300",align="left",stylebox="border",desc="click to enlarge")}{IMG}{DIV}
%clear%

!!Download

Downloads are available in the [http://code.google.com/p/ogre-procedural/downloads/list|download section] of the project page.

Precompiled binaries are provided for Visual Studio 9,10,11 and for MingW : [http://code.google.com/p/ogre-procedural/downloads/list|here] for the stable release, and [http://files.ogreci.org/OgreProcedural/|there] for nightly builds.
Source package is also available for all platforms (CMake based project files)

!!Usage Examples

__Create a sphere:__
{CODE(wrap="1", colors="c++")}
#include "Procedural.h"
Procedural::SphereGenerator().setRadius(5.f).setUTile(.5f).realizeMesh("mySphere");
mSceneMgr->createEntity("mySphere");
{CODE}

__Create a pipeline:__
{CODE(wrap="1", colors="c++")}Procedural::Path p = Procedural::BezierPath().addPoint(0,5,0).addPoint(0,4,10).addPoint(10,5,10).close().realizePath();
Procedural::Shape s = Procedural::CircleShape().setRadius(1.5).realizeShape();
Procedural::Extruder().setExtrusionPath(&p).setShapeToExtrude(&s).realizeMesh("extrudedMesh");{CODE}

!!Advanced example

This example shows how to create a shape by a vector graphic application and how to use it for extruding.

Create SVG shape (e.g. with Inkscape):
{img fileId="2059"}

Load the shape and define a path:
{img fileId="2058"}

Extrude: 
{img fileId="2060"}

{CODE(wrap="1", colors="c++")}
// load inkscape .svg file into a shape:
Shape shape = Shape();
shape.loadFromSVG("inkscape-test.svg", "path2985");

// construct the spline we want to extrude along:
CatmullRomSpline3 pp;
pp.addPoint(0,-5,0).addPoint(50,-5,250).addPoint(500,-5,500).setNumSeg(10);
Path line = pp.realizePath();

// extruder and mesh generation
putMesh(shape.realizeMesh());
putMesh(line.realizeMesh(),1);
Extruder e;
putMesh(e.setShapeToExtrude(&shape).setExtrusionPath(&line).realizeMesh(),1);
{CODE}



!!See also

* [http://www.ogre3d.org/addonforums/viewforum.php?f=33|Ogre Addons subforum]
* [http://www.ogre3d.org/forums/viewtopic.php?f=11&t=60773|Original forum topic (locked)]
* ((ManualObject))
* ((GeometricMesh)) - Creating various geometric/geodesic shapes
* ((Mogre Procedural Geometry Library)) - A C# port for ((MOGRE|Mogre))

        

History

Information Version
Sat 14 of Mar, 2020 13:36 GMT-0000 paroj 25
Mon 04 of Dec, 2017 16:43 GMT-0000 paroj 24
Mon 04 of Dec, 2017 16:42 GMT-0000 paroj 23
Mon 06 of Jan, 2014 10:23 GMT-0000 Beauty updated link for Mogre port, because now it has its own wiki page 22
Sat 04 of Jan, 2014 10:05 GMT-0000 Beauty added link for Mogre port 21
Tue 05 of Feb, 2013 11:34 GMT-0000 simedj 20
Tue 05 of Feb, 2013 11:33 GMT-0000 simedj Added sub-forum link 19
Fri 22 of Jun, 2012 07:24 GMT-0000 mikachu 18
Sun 21 of Aug, 2011 21:49 GMT-0000 Beauty added OpenStreetMap feature 17
Sun 21 of Aug, 2011 18:22 GMT-0000 Beauty tiny image improvements 16
Sun 21 of Aug, 2011 16:25 GMT-0000 duststorm 15
Sun 21 of Aug, 2011 15:32 GMT-0000 duststorm 14
Sun 21 of Aug, 2011 03:04 GMT-0000 jacmoe 13
Sun 21 of Aug, 2011 03:01 GMT-0000 jacmoe 12
Sun 21 of Aug, 2011 03:00 GMT-0000 jacmoe 11
Sun 21 of Aug, 2011 01:20 GMT-0000 Beauty added advanced example with screen shots 10
Sun 21 of Aug, 2011 00:29 GMT-0000 Beauty extented feature list 9
Tue 09 of Aug, 2011 14:51 GMT-0000 saftschachtel Changed the "generate" to "realizeMesh" because "generate"-function does not exist (anymore). 8
Tue 09 of Aug, 2011 14:49 GMT-0000 saftschachtel 7
Sat 05 of Mar, 2011 20:47 GMT-0000 Beauty added link ((GeometricMesh)) 6
Wed 12 of Jan, 2011 11:31 GMT-0000 Beauty improved display style for enlarging images 5
Wed 12 of Jan, 2011 11:03 GMT-0000 Beauty bugfix for good picture display in Internet Explorer 4
Tue 11 of Jan, 2011 12:35 GMT-0000 Beauty added screenshots 3
Tue 11 of Jan, 2011 12:15 GMT-0000 Beauty added new example 2
Mon 10 of Jan, 2011 12:58 GMT-0000 Beauty NEW PAGE 1