Fix typos and spelling.
This commit is contained in:
parent
c3008512f1
commit
02c310982e
@ -5,7 +5,7 @@
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
<uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8"></uses-sdk>
|
||||
<uses-feature android:glEsVersion="0x00010001"/> <!-- OpenGL min requierements (1.1) -->
|
||||
<uses-feature android:glEsVersion="0x00010001"/> <!-- OpenGL min requirements (1.1) -->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
|
||||
<application android:label="@string/app_name" android:icon="@drawable/osg">
|
||||
|
@ -5,7 +5,7 @@
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
<uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8"></uses-sdk>
|
||||
<uses-feature android:glEsVersion="0x00020000"/> <!-- OpenGL min requierements (2.0) -->
|
||||
<uses-feature android:glEsVersion="0x00020000"/> <!-- OpenGL min requirements (2.0) -->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
|
||||
<application android:label="@string/app_name" android:icon="@drawable/osg">
|
||||
|
@ -84,7 +84,7 @@ struct MyRigTransformHardware : public osgAnimation::RigTransformHardware
|
||||
CommonProgram = new osg::Program;
|
||||
CommonProgram->setName("HardwareSkinning");
|
||||
|
||||
//set default source if _shader is not user setted
|
||||
//set default source if _shader is not user set
|
||||
if (!vertexshader.valid())
|
||||
{
|
||||
vertexshader = osgDB::readRefShaderFile(osg::Shader::VERTEX,"skinning.vert");
|
||||
|
@ -245,7 +245,7 @@ int main( int argc, char **argv )
|
||||
traits->depth = src_traits->depth;
|
||||
traits->pbuffer = true;
|
||||
} else {
|
||||
//viewer would use fullscreen size (unknown here) pbuffer will use 4096 x4096 (or best avaiable)
|
||||
//viewer would use fullscreen size (unknown here) pbuffer will use 4096 x4096 (or best available)
|
||||
traits->width = 1 << 12;
|
||||
traits->height = 1 << 12;
|
||||
traits->pbuffer = true;
|
||||
|
@ -509,7 +509,7 @@ int main( int argc, char **argv )
|
||||
// any option left unread are converted into errors to write out later.
|
||||
arguments.reportRemainingOptionsAsUnrecognized();
|
||||
|
||||
// report any errors if they have occurred when parsing the program aguments.
|
||||
// report any errors if they have occurred when parsing the program arguments.
|
||||
if (arguments.errors())
|
||||
{
|
||||
arguments.writeErrorMessages(std::cout);
|
||||
|
@ -91,7 +91,7 @@ private:
|
||||
bool createMap(MapMode mapMode, bool first=false);
|
||||
|
||||
/*!
|
||||
Creates a two dimensional noise map and initalizes _noiseMap with it
|
||||
Creates a two dimensional noise map and initializes _noiseMap with it
|
||||
*/
|
||||
bool createNoiseMap();
|
||||
|
||||
|
@ -34,7 +34,7 @@ class DePeePass
|
||||
DePeePass();
|
||||
|
||||
/*!
|
||||
Desctructor cleans the whole depth peeling pass
|
||||
Destructor cleans the whole depth peeling pass
|
||||
*/
|
||||
~DePeePass();
|
||||
|
||||
|
@ -381,7 +381,7 @@ AppState::AppState(osgViewer::Viewer* viewer_)
|
||||
textProjection = new Projection;
|
||||
textProjection->setMatrix(Matrix::ortho2D(0,1280,0,1024));
|
||||
textProjection->addChild(textGeode);
|
||||
// "texture not available" text displayed when the user trys to
|
||||
// "texture not available" text displayed when the user tries to
|
||||
// display the depth texture while multisampling.
|
||||
osgText::Text* noCanDo = new osgText::Text;
|
||||
noCanDo->setFont(fontName);
|
||||
|
@ -74,7 +74,7 @@ int main( int argc, char **argv )
|
||||
arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+" [options]");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-h or --help","Display this information");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-i <filename>","Input scene (or presentation) filename.");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-o <filename>","Base ouput filename of the images, recommended to use something like Images/image.png");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-o <filename>","Base output filename of the images, recommended to use something like Images/image.png");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--cs <filename>","Load pre-generated configuration file for run.");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--ouput-cs <filename>","Output configuration file with settings provided on commandline.");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-p <filename>","Use specificied camera path file to control camera position.");
|
||||
|
@ -96,7 +96,7 @@ int main(int argc, char *argv[])
|
||||
osg::ArgumentParser arguments(&argc,argv);
|
||||
|
||||
// set up the usage document, in case we need to print out how to use this program.
|
||||
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the example which demonstrates ping pong rendering with FBOs and mutliple rendering branches. It uses Conway's Game of Life to illustrate the concept.");
|
||||
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the example which demonstrates ping pong rendering with FBOs and multiple rendering branches. It uses Conway's Game of Life to illustrate the concept.");
|
||||
arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+" [options] --startim start_image");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-h or --help","Display this information");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--startim","The initial image to seed the game of life with.");
|
||||
|
@ -124,7 +124,7 @@
|
||||
but if Robert will accept its current implementations ( I mean - primitive
|
||||
sets that have osg::TextureBuffer in constructor ), I may add it to
|
||||
osg/include/PrimitiveSet header.
|
||||
- I used BufferTemplate class writen and published by Aurelien in submission forum
|
||||
- I used BufferTemplate class written and published by Aurelien in submission forum
|
||||
some time ago. For some reason this class never got into osg/include, but is
|
||||
really needed during creation of UBOs, TBOs, and possibly SSBOs in the future.
|
||||
I added std::vector specialization to that template class.
|
||||
@ -1145,7 +1145,7 @@ osg::Group* createAirplane( float detailRatio, const osg::Vec4& hullColor, const
|
||||
return root.release();
|
||||
}
|
||||
|
||||
// createStaticRendering() shows how to use any OSG graph ( wheter it is single osg::Geode, or sophisticated osg::PagedLOD tree covering whole earth )
|
||||
// createStaticRendering() shows how to use any OSG graph ( whether it is single osg::Geode, or sophisticated osg::PagedLOD tree covering whole earth )
|
||||
// as a source of instance data. This way, the OSG graph of arbitrary size is at first culled using typical OSG mechanisms, then remaining osg::Geometries
|
||||
// are sent to cull shader ( cullProgram ). Cull shader does not draw anything to screen ( thanks to GL_RASTERIZER_DISCARD mode ), but calculates if particular
|
||||
// instances - sourced from above mentioned osg::Geometries - are visible and what LODs for these instances should be rendered.
|
||||
|
@ -125,7 +125,7 @@ int main( int argc, char **argv )
|
||||
osg::ArgumentParser arguments(&argc,argv);
|
||||
|
||||
// set up the usage document, in case we need to print out how to use this program.
|
||||
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the example which demonstrates how to create a scene programatically, in this case a hang gliding flying site.");
|
||||
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the example which demonstrates how to create a scene programmatically, in this case a hang gliding flying site.");
|
||||
arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+" [options] filename ...");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-h or --help","Display this information");
|
||||
|
||||
|
@ -39,7 +39,7 @@
|
||||
#include "stdio.h"
|
||||
|
||||
|
||||
// callback to make the loaded model oscilate up and down.
|
||||
// callback to make the loaded model oscillate up and down.
|
||||
class ModelTransformCallback : public osg::NodeCallback
|
||||
{
|
||||
public:
|
||||
|
@ -326,7 +326,7 @@ int main( int argc, char **argv )
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--texture <width> <height> <depth>","Allocate a 3D texture of specified dimensions.");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--texture <width> <height>","Allocate a 2D texture of specified dimensions.");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--texture <width>","Allocate a 1D texture of specified dimensions.");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--geometry <width> <height>","Allocate a osg::Geometry representing a grid of specified size, using OpenGL Dislay Lists.");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--geometry <width> <height>","Allocate a osg::Geometry representing a grid of specified size, using OpenGL Display Lists.");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--geometry-va <width> <height>","Allocate a osg::Geometry representing a grid of specified size, using Vertex Arrays.");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--geometry-vbo <width> <height>","Allocate a osg::Geometry representing a grid of specified size, using Vertex Buffer Objects.");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("--fbo <width> <height>","Allocate a FrameBufferObject of specified dimensions.");
|
||||
|
@ -290,7 +290,7 @@ int main( int argc, char **argv )
|
||||
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the example which demonstrates use of convex planer occluders.");
|
||||
arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+" [options] filename ...");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-h or --help","Display this information");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-m","Mannually create occluders");
|
||||
arguments.getApplicationUsage()->addCommandLineOption("-m","Manually create occluders");
|
||||
|
||||
// initialize the viewer.
|
||||
osgViewer::Viewer viewer;
|
||||
|
@ -444,7 +444,7 @@ void build_world(osg::Group *root)
|
||||
// the second one will be a little bit more complex, showing how to
|
||||
// create custom operators.
|
||||
// To avoid inserting too much code in a single function, we have
|
||||
// splitted the work into two functions which accept a Group node as
|
||||
// split the work into two functions which accept a Group node as
|
||||
// parameter, and return a pointer to the particle system they created.
|
||||
|
||||
osgParticle::ParticleSystem *ps1 = create_simple_particle_system(root);
|
||||
|
@ -317,7 +317,7 @@ public:
|
||||
// insert particle effects alongside the hit node, therefore able to track that nodes movement,
|
||||
// however, this does require us to insert the ParticleSystem itself into the root of the scene graph
|
||||
// separately from the main particle effects group which contains the emitters and programs.
|
||||
// the follow code block implements this, note the path for handling particle effects which arn't attached to
|
||||
// the follow code block implements this, note the path for handling particle effects which aren't attached to
|
||||
// moving models is easy - just a single line of code!
|
||||
|
||||
// tell the effects not to attach to the particle system locally for rendering, as we'll handle add it into the
|
||||
|
@ -155,7 +155,7 @@ int main( int argc, char** argv )
|
||||
root->addChild( parent.get() );
|
||||
root->addChild( updater.get() );
|
||||
|
||||
// FIXME 2010.9.19: the updater can't be a drawable; otehrwise the ParticleEffect will not work properly. why?
|
||||
// FIXME 2010.9.19: the updater can't be a drawable; otherwise the ParticleEffect will not work properly. why?
|
||||
updater->addParticleSystem( ps.get() );
|
||||
|
||||
osg::ref_ptr<osg::Geode> geode = new osg::Geode;
|
||||
|
@ -747,7 +747,7 @@ int main( int argc, char **argv )
|
||||
|
||||
osg::ref_ptr<Album> album = new Album(arguments,width,height);
|
||||
|
||||
// creat the scene from the file list.
|
||||
// create the scene from the file list.
|
||||
osg::ref_ptr<osg::Group> rootNode = album->getScene();
|
||||
|
||||
if (!rootNode) return 0;
|
||||
|
@ -50,7 +50,7 @@ int main(int argc, char** argv)
|
||||
if (script.valid()) scripts.push_back(script.get());
|
||||
}
|
||||
|
||||
// assgin script engine to scene graphs
|
||||
// assign script engine to scene graphs
|
||||
model->getOrCreateUserDataContainer()->addUserObject(osgDB::readFile<osg::ScriptEngine>("ScriptEngine.lua"));
|
||||
model->getOrCreateUserDataContainer()->addUserObject(osgDB::readFile<osg::ScriptEngine>("ScriptEngine.python"));
|
||||
model->getOrCreateUserDataContainer()->addUserObject(osgDB::readFile<osg::ScriptEngine>("ScriptEngine.js"));
|
||||
|
@ -120,7 +120,7 @@ int main(int argc, char* argv[])
|
||||
sampler2=(osg::Sampler*)(*it)->getTextureAttribute(0, osg::StateAttribute::SAMPLER);
|
||||
}
|
||||
if(sampler1.valid()&&sampler2.valid()){
|
||||
OSG_WARN<<"2samplers manipulator setted"<<std::endl;
|
||||
OSG_WARN<<"2samplers manipulator set"<<std::endl;
|
||||
viewer.addEventHandler(new SamplersKeyboardEventHandler(sampler1.get(), sampler2.get()));
|
||||
}
|
||||
}
|
||||
@ -185,7 +185,7 @@ int main(int argc, char* argv[])
|
||||
im->dirty();
|
||||
tex2->setImage(im);
|
||||
}
|
||||
///Overrided Filtering setup
|
||||
///Overridden Filtering setup
|
||||
tex1->setFilter(osg::Texture::MAG_FILTER,osg::Texture::NEAREST);
|
||||
tex1->setFilter(osg::Texture::MIN_FILTER,osg::Texture::NEAREST);
|
||||
|
||||
|
@ -187,7 +187,7 @@ int main( int argc, char **argv )
|
||||
// pass frame stamp to the SceneView so that the update, cull and draw traversals all use the same FrameStamp
|
||||
sceneView->setFrameStamp(frameStamp.get());
|
||||
|
||||
// update the viewport dimensions, incase the window has been resized.
|
||||
// update the viewport dimensions, in case the window has been resized.
|
||||
sceneView->setViewport(0,0,traits->width,traits->height);
|
||||
|
||||
|
||||
|
@ -610,7 +610,7 @@ int main( int argc, char **argv )
|
||||
osg::TexMat* texmatLeft = new osg::TexMat;
|
||||
osg::TexMat* texmatRight = new osg::TexMat;
|
||||
|
||||
// creat the scene from the file list.
|
||||
// create the scene from the file list.
|
||||
osg::ref_ptr<osg::Switch> rootNode;
|
||||
if (!onDisk) rootNode = createScene(fileList,texmatLeft,texmatRight,radius,height,length);
|
||||
else rootNode=new osg::Switch();
|
||||
|
@ -235,7 +235,7 @@ class Teapot : public osg::Drawable
|
||||
// of OpenGL primitives.
|
||||
virtual void drawImplementation(osg::RenderInfo&) const
|
||||
{
|
||||
// teapot(..) doens't use vertex arrays at all so we don't need to toggle their state
|
||||
// teapot(..) doesn't use vertex arrays at all so we don't need to toggle their state
|
||||
// if we did we'd need to something like following call
|
||||
// state.disableAllVertexArrays(), see src/osg/Geometry.cpp for the low down.
|
||||
|
||||
|
@ -61,7 +61,7 @@ class /*OSGTEXT_EXPORT*/ TextTechnique : public osg::Object
|
||||
/// default TextTechnique implementation used if no other is specified on TextNode
|
||||
static osg::ref_ptr<TextTechnique>& getDefaultTextTechinque();
|
||||
|
||||
/// start building a new charater layout
|
||||
/// start building a new character layout
|
||||
virtual void start();
|
||||
|
||||
/// called by Layout engine to place individual characters
|
||||
@ -70,7 +70,7 @@ class /*OSGTEXT_EXPORT*/ TextTechnique : public osg::Object
|
||||
/// called by Layout engine to place individual characters
|
||||
virtual void addCharacter(const osg::Vec3& position, const osg::Vec3& size, Glyph3D* glyph, Style* style);
|
||||
|
||||
/// finish building new charater layout
|
||||
/// finish building new character layout
|
||||
virtual void finish();
|
||||
|
||||
/// provide traversal control
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include <osgGA/TrackballManipulator>
|
||||
|
||||
// This is an implementation of SimpleViewer that is designed to be subclassed
|
||||
// and used as a GtkDrawingArea in a GTK application. Because of the implemention
|
||||
// and used as a GtkDrawingArea in a GTK application. Because of the implementation
|
||||
// of GTK, I was unable to derive from GtkWidget and instead had to "wrap" it.
|
||||
// Conceptually, however, you can think of an OSGGTKDrawingArea as both an OSG
|
||||
// Viewer AND GtkDrawingArea.
|
||||
|
@ -211,7 +211,7 @@ osg::Node * CreateAdvancedHierarchy( osg::Node * model )
|
||||
|
||||
// Set default VirtualProgram in root StateSet
|
||||
// With main vertex and main fragment shaders calling
|
||||
// lighting and texture functions defined in aditional shaders
|
||||
// lighting and texture functions defined in additional shaders
|
||||
// Lighting is done per vertex using simple directional light
|
||||
// Texture uses stage 0 TexCoords and TexMap
|
||||
|
||||
|
@ -45,10 +45,10 @@ public:
|
||||
Affinity& operator = (const Affinity& rhs) { if (&rhs!=this) { activeCPUs = rhs.activeCPUs; } return *this; }
|
||||
|
||||
|
||||
/** add a specfied cpu core from the list to have affinity to. */
|
||||
/** add a specified cpu core from the list to have affinity to. */
|
||||
void add(unsigned int cpuNmber) { activeCPUs.insert(cpuNmber); }
|
||||
|
||||
/** remove a specfied cpu core from the list to have affinity to. */
|
||||
/** remove a specified cpu core from the list to have affinity to. */
|
||||
void remove(unsigned int cpuNmber) { activeCPUs.erase(cpuNmber); }
|
||||
|
||||
/** return true if affinity has been provided for specific CPU cores.*/
|
||||
|
@ -190,7 +190,7 @@ public:
|
||||
/**
|
||||
* Set the thread's schedule priority. This is a complex method.
|
||||
* Beware of thread priorities when using a many-to-many kernel
|
||||
* entity implemenation (such as IRIX pthreads). If one is not careful
|
||||
* entity implementation (such as IRIX pthreads). If one is not careful
|
||||
* to manage the thread priorities, a priority inversion deadlock can
|
||||
* easily occur (Although the OpenThreads::Mutex & OpenThreads::Barrier
|
||||
* constructs have been designed with this scenario in mind). Unless
|
||||
|
@ -437,10 +437,10 @@ class OSG_EXPORT BufferObject : public Object
|
||||
const BufferObjectProfile& getProfile() const { return _profile; }
|
||||
|
||||
|
||||
/** Set whether the BufferObject should use a GLBufferObject just for copying the BufferData and release it immmediately so that it may be reused.*/
|
||||
/** Set whether the BufferObject should use a GLBufferObject just for copying the BufferData and release it immediately so that it may be reused.*/
|
||||
void setCopyDataAndReleaseGLBufferObject(bool copyAndRelease) { _copyDataAndReleaseGLBufferObject = copyAndRelease; }
|
||||
|
||||
/** Get whether the BufferObject should use a GLBufferObject just for copying the BufferData and release it immmediately.*/
|
||||
/** Get whether the BufferObject should use a GLBufferObject just for copying the BufferData and release it immediately.*/
|
||||
bool getCopyDataAndReleaseGLBufferObject() const { return _copyDataAndReleaseGLBufferObject; }
|
||||
|
||||
|
||||
|
@ -158,7 +158,7 @@ public:
|
||||
|
||||
};
|
||||
|
||||
/** Convenience function for getting the CallbackObject associated with specificed name from an Object's UserDataContainer.*/
|
||||
/** Convenience function for getting the CallbackObject associated with specified name from an Object's UserDataContainer.*/
|
||||
inline CallbackObject* getCallbackObject(osg::Object* object, const std::string& name)
|
||||
{
|
||||
osg::UserDataContainer* udc = object->getUserDataContainer();
|
||||
@ -171,7 +171,7 @@ inline CallbackObject* getCallbackObject(osg::Object* object, const std::string&
|
||||
}
|
||||
|
||||
|
||||
/** Convenience function for getting the CallbackObject associated with specificed name from an Object's UserDataContainer.*/
|
||||
/** Convenience function for getting the CallbackObject associated with specified name from an Object's UserDataContainer.*/
|
||||
inline const CallbackObject* getCallbackObject(const osg::Object* object, const std::string& name)
|
||||
{
|
||||
const osg::UserDataContainer* udc = object->getUserDataContainer();
|
||||
|
@ -433,7 +433,7 @@ class OSG_EXPORT Image : public BufferData
|
||||
|
||||
/** Ensure image dimensions are a power of two.
|
||||
* Mipmapped textures require the image dimensions to be
|
||||
* power of two and are within the maxiumum texture size for
|
||||
* power of two and are within the maximum texture size for
|
||||
* the host machine.
|
||||
*/
|
||||
void ensureValidSizeForTexturing(GLint maxTextureSize);
|
||||
|
@ -194,11 +194,11 @@ class OSG_EXPORT Node : public Object
|
||||
|
||||
|
||||
/** Get the list of node paths parent paths.
|
||||
* The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specifed node. */
|
||||
* The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specified node. */
|
||||
NodePathList getParentalNodePaths(osg::Node* haltTraversalAtNode=0) const;
|
||||
|
||||
/** Get the list of matrices that transform this node from local coordinates to world coordinates.
|
||||
* The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specifed node. */
|
||||
* The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specified node. */
|
||||
MatrixList getWorldMatrices(const osg::Node* haltTraversalAtNode=0) const;
|
||||
|
||||
|
||||
|
@ -154,7 +154,7 @@ class OSG_EXPORT PagedLOD : public LOD
|
||||
/** Get the number of children that the PagedLOD must keep around, even if they are older than their expiry time.*/
|
||||
unsigned int getNumChildrenThatCannotBeExpired() const { return _numChildrenThatCannotBeExpired; }
|
||||
|
||||
/** Set wether you want to disable the paging in of external nodes.*/
|
||||
/** Set whether you want to disable the paging in of external nodes.*/
|
||||
void setDisableExternalChildrenPaging(bool flag) { _disableExternalChildrenPaging = flag; }
|
||||
|
||||
bool getDisableExternalChildrenPaging() const { return _disableExternalChildrenPaging; }
|
||||
|
@ -47,7 +47,7 @@ class OSG_EXPORT Referenced
|
||||
|
||||
Referenced();
|
||||
|
||||
/** Deprecated, Referenced is now always uses thread safe ref/unref, use default Refernced() constructor instead */
|
||||
/** Deprecated, Referenced is now always uses thread safe ref/unref, use default Referenced() constructor instead */
|
||||
explicit Referenced(bool threadSafeRefUnref);
|
||||
|
||||
Referenced(const Referenced&);
|
||||
|
@ -747,7 +747,7 @@ class TessellationHints : public Object
|
||||
// forward declare;
|
||||
class Geometry;
|
||||
|
||||
/** Convenience class for populating an Geomtry with vertex, normals, texture coords and primitives that can render a Shape. */
|
||||
/** Convenience class for populating an Geometry with vertex, normals, texture coords and primitives that can render a Shape. */
|
||||
class OSG_EXPORT BuildShapeGeometryVisitor : public ConstShapeVisitor
|
||||
{
|
||||
public:
|
||||
|
@ -203,14 +203,14 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
/** Convenience function for getting the User Object associated with specificed name from an Object's UserDataContainer.*/
|
||||
/** Convenience function for getting the User Object associated with specified name from an Object's UserDataContainer.*/
|
||||
inline Object* getUserObject(osg::Object* object, const std::string& name)
|
||||
{
|
||||
osg::UserDataContainer* udc = object->getUserDataContainer();
|
||||
return udc ? udc->getUserObject(name) : 0;
|
||||
}
|
||||
|
||||
/** Convenience function for getting the User Object associated with specificed name from an Object's UserDataContainer.*/
|
||||
/** Convenience function for getting the User Object associated with specified name from an Object's UserDataContainer.*/
|
||||
inline const Object* getUserObject(const osg::Object* object, const std::string& name)
|
||||
{
|
||||
const osg::UserDataContainer* udc = object->getUserDataContainer();
|
||||
|
@ -28,7 +28,7 @@ class Vec2i
|
||||
/** Number of vector components. */
|
||||
enum { num_components = 2 };
|
||||
|
||||
/** Vec member varaible. */
|
||||
/** Vec member variable. */
|
||||
value_type _v[2];
|
||||
|
||||
Vec2i() { _v[0]=0; _v[1]=0; }
|
||||
|
@ -28,7 +28,7 @@ class Vec2ui
|
||||
/** Number of vector components. */
|
||||
enum { num_components = 2 };
|
||||
|
||||
/** Vec member varaible. */
|
||||
/** Vec member variable. */
|
||||
value_type _v[2];
|
||||
|
||||
Vec2ui() { _v[0]=0; _v[1]=0; }
|
||||
|
@ -28,7 +28,7 @@ class Vec3i
|
||||
/** Number of vector components. */
|
||||
enum { num_components = 3 };
|
||||
|
||||
/** Vec member varaible. */
|
||||
/** Vec member variable. */
|
||||
value_type _v[3];
|
||||
|
||||
Vec3i() { _v[0]=0; _v[1]=0; _v[2]=0; }
|
||||
|
@ -28,7 +28,7 @@ class Vec3ui
|
||||
/** Number of vector components. */
|
||||
enum { num_components = 3 };
|
||||
|
||||
/** Vec member varaible. */
|
||||
/** Vec member variable. */
|
||||
value_type _v[3];
|
||||
|
||||
Vec3ui() { _v[0]=0; _v[1]=0; _v[2]=0; }
|
||||
|
@ -28,7 +28,7 @@ class Vec4i
|
||||
/** Number of vector components. */
|
||||
enum { num_components = 4 };
|
||||
|
||||
/** Vec member varaible. */
|
||||
/** Vec member variable. */
|
||||
value_type _v[4];
|
||||
|
||||
Vec4i() { _v[0]=0; _v[1]=0; _v[2]=0; _v[3]=0; }
|
||||
|
@ -28,7 +28,7 @@ class Vec4ui
|
||||
/** Number of vector components. */
|
||||
enum { num_components = 4 };
|
||||
|
||||
/** Vec member varaible. */
|
||||
/** Vec member variable. */
|
||||
value_type _v[4];
|
||||
|
||||
Vec4ui() { _v[0]=0; _v[1]=0; _v[2]=0; _v[3]=0; }
|
||||
|
@ -81,7 +81,7 @@ class ref_ptr
|
||||
bool operator < (const ref_ptr& rp) const { return (_ptr<rp._ptr); }
|
||||
|
||||
|
||||
// follows is an implmentation of the "safe bool idiom", details can be found at:
|
||||
// follows is an implementation of the "safe bool idiom", details can be found at:
|
||||
// http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Safe_bool
|
||||
// http://lists.boost.org/Archives/boost/2003/09/52856.php
|
||||
|
||||
|
@ -135,15 +135,15 @@ namespace osgAnimation
|
||||
template <class V>
|
||||
inline void compute(const osg::Matrix& transform, const osg::Matrix& invTransform, const V* src, V* dst)
|
||||
{
|
||||
// the result of matrix mult should be cached to be used for vertexes transform and normal transform and maybe other computation
|
||||
// the result of matrix mult should be cached to be used for vertices transform and normal transform and maybe other computation
|
||||
for(VertexGroupList::iterator itvg=_uniqVertexGroupList.begin(); itvg!=_uniqVertexGroupList.end(); ++itvg)
|
||||
{
|
||||
VertexGroup& uniq = *itvg;
|
||||
uniq.computeMatrixForVertexSet();
|
||||
osg::Matrix matrix = transform * uniq.getMatrix() * invTransform;
|
||||
|
||||
const IndexList& vertexes = uniq.getVertices();
|
||||
for(IndexList::const_iterator vertIDit=vertexes.begin(); vertIDit!=vertexes.end(); ++vertIDit)
|
||||
const IndexList& vertices = uniq.getVertices();
|
||||
for(IndexList::const_iterator vertIDit=vertices.begin(); vertIDit!=vertices.end(); ++vertIDit)
|
||||
{
|
||||
dst[*vertIDit] = src[*vertIDit] * matrix;
|
||||
}
|
||||
@ -160,8 +160,8 @@ namespace osgAnimation
|
||||
uniq.computeMatrixForVertexSet();
|
||||
osg::Matrix matrix = transform * uniq.getMatrix() * invTransform;
|
||||
|
||||
const IndexList& vertexes = uniq.getVertices();
|
||||
for(IndexList::const_iterator vertIDit=vertexes.begin(); vertIDit!=vertexes.end(); ++vertIDit)
|
||||
const IndexList& vertices = uniq.getVertices();
|
||||
for(IndexList::const_iterator vertIDit=vertices.begin(); vertIDit!=vertices.end(); ++vertIDit)
|
||||
{
|
||||
dst[*vertIDit] = osg::Matrix::transform3x3(src[*vertIDit],matrix);
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ namespace osgAnimation
|
||||
///normalize per vertex weights given numvert of the attached mesh
|
||||
void normalize(unsigned int numvert);
|
||||
|
||||
///remove weakest influences in order to fit targetted numbonepervertex
|
||||
///remove weakest influences in order to fit targeted numbonepervertex
|
||||
void cullInfluenceCountPerVertex(unsigned int maxnumbonepervertex, float minweight=0, bool renormalize=true);
|
||||
|
||||
//compute PerVertexInfluenceList
|
||||
|
@ -110,12 +110,12 @@ DECLARE_TYPE(osg::BoundingBoxd, BOUNDINGBOXD)
|
||||
DECLARE_TYPE(osg::BoundingSpheref, BOUNDINGSPHEREF)
|
||||
DECLARE_TYPE(osg::BoundingSphered, BOUNDINGSPHERED)
|
||||
|
||||
// forward decalare
|
||||
// forward declare
|
||||
class PropertyOutputIterator;
|
||||
class PropertyInputIterator;
|
||||
|
||||
|
||||
/** ClassInterface provides a general means of checking for supported properties of classes, and getting/setting thoses properties.
|
||||
/** ClassInterface provides a general means of checking for supported properties of classes, and getting/setting those properties.
|
||||
Uses the osgDB serializers to do the actual object query/get/set.
|
||||
*/
|
||||
class OSGDB_EXPORT ClassInterface
|
||||
@ -166,10 +166,10 @@ public:
|
||||
/// run method of object
|
||||
bool run(osg::Object* object, const std::string& methodName, osg::Parameters& inputParameters, osg::Parameters& outputParameters) const;
|
||||
|
||||
/// checked for support of specificed method
|
||||
/// checked for support of specified method
|
||||
bool hasMethod(const std::string& compoundClassName, const std::string& methodName) const;
|
||||
|
||||
/// checked for support of specificed method
|
||||
/// checked for support of specified method
|
||||
bool hasMethod(const osg::Object* object, const std::string& methodName) const;
|
||||
|
||||
|
||||
|
@ -434,7 +434,7 @@ class OSGDB_EXPORT DatabasePager : public osg::NodeVisitor::DatabaseRequestHandl
|
||||
void compileCompleted(DatabaseRequest* databaseRequest);
|
||||
|
||||
/** Iterate through the active PagedLOD nodes children removing
|
||||
* children which havn't been visited since specified expiryTime.
|
||||
* children which haven't been visited since specified expiryTime.
|
||||
* note, should be only be called from the update thread. */
|
||||
virtual void removeExpiredSubgraphs(const osg::FrameStamp &frameStamp);
|
||||
|
||||
|
@ -39,7 +39,7 @@ extern OSGDB_EXPORT std::string getNameLessAllExtensions(const std::string& file
|
||||
extern OSGDB_EXPORT std::string getStrippedName(const std::string& fileName);
|
||||
/** If 'to' is in a subdirectory of 'from' then this function returns the subpath, otherwise it just returns the file name.
|
||||
* The function does \b not automagically resolve paths as the system does, so be careful to give canonical paths.
|
||||
* However, the function interprets slashes ('/') ans backslashes ('\') as they were equal.
|
||||
* However, the function interprets slashes ('/') and backslashes ('\') as they were equal.
|
||||
*/
|
||||
extern OSGDB_EXPORT std::string getPathRelative(const std::string& from, const std::string& to);
|
||||
/** Gets root part of a path ("/" or "C:"), or an empty string if none found. */
|
||||
|
@ -181,10 +181,10 @@ public:
|
||||
else return 0;
|
||||
}
|
||||
|
||||
/// set an input iterator, used directly when not using InputStream with a traditional file releated stream.
|
||||
/// set an input iterator, used directly when not using InputStream with a traditional file related stream.
|
||||
void setInputIterator( InputIterator* ii ) { _in = ii; }
|
||||
|
||||
/// start reading from InputStream treating it as a traditional file releated stream, handles headers and versioning
|
||||
/// start reading from InputStream treating it as a traditional file related stream, handles headers and versioning
|
||||
ReadType start( InputIterator* );
|
||||
|
||||
void decompress();
|
||||
|
@ -173,10 +173,10 @@ public:
|
||||
void writeObjectFields( const osg::Object* obj );
|
||||
void writeObjectFields( const osg::Object* obj, const std::string& compoundName );
|
||||
|
||||
/// set an output iterator, used directly when not using OutputStream with a traditional file releated stream.
|
||||
/// set an output iterator, used directly when not using OutputStream with a traditional file related stream.
|
||||
void setOutputIterator( OutputIterator* oi ) { _out = oi; }
|
||||
|
||||
/// start writing to OutputStream treating it as a traditional file releated stream, handles headers and versioning
|
||||
/// start writing to OutputStream treating it as a traditional file related stream, handles headers and versioning
|
||||
void start( OutputIterator* outIterator, WriteType type );
|
||||
|
||||
void compress( std::ostream* ostream );
|
||||
|
@ -37,7 +37,7 @@ namespace osgFX
|
||||
Cartoon();
|
||||
Cartoon(const Cartoon& copy, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
|
||||
|
||||
// effect class informations
|
||||
// effect class information
|
||||
META_Effect(
|
||||
osgFX,
|
||||
Cartoon,
|
||||
|
@ -36,7 +36,7 @@ namespace osgFX
|
||||
Scribe();
|
||||
Scribe(const Scribe& copy, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
|
||||
|
||||
// effect class informations
|
||||
// effect class information
|
||||
META_Effect(
|
||||
osgFX,
|
||||
Scribe,
|
||||
|
@ -107,7 +107,7 @@ class OSGGA_EXPORT EventVisitor : public osg::NodeVisitor
|
||||
}
|
||||
|
||||
// The following overrides are technically redundant as the default implementation would eventually trickle down to
|
||||
// apply(osg::Node&); - however defining these explicitely should save a couple of virtual function calls
|
||||
// apply(osg::Node&); - however defining these explicitly should save a couple of virtual function calls
|
||||
virtual void apply(osg::Geode& node) { handle_callbacks_and_traverse(node); }
|
||||
virtual void apply(osg::Billboard& node) { handle_callbacks_and_traverse(node); }
|
||||
virtual void apply(osg::LightSource& node) { handle_callbacks_and_traverse(node); }
|
||||
|
@ -66,7 +66,7 @@ as appropriate for the viewer.
|
||||
|
||||
Events from the windowing environment are adpated, and then fed into the GUIEventHandlers.
|
||||
The GUIEventHandlers analyse and take action, and make requests of the windowing
|
||||
environemnt via the GUIActionAdapter. The viewer writer should then honour these
|
||||
environment via the GUIActionAdapter. The viewer writer should then honour these
|
||||
requests, translating them into calls to the windowing API.
|
||||
|
||||
*/
|
||||
|
@ -44,7 +44,7 @@ class OSGGA_EXPORT KeySwitchMatrixManipulator : public CameraManipulator
|
||||
void addMatrixManipulator(int key, std::string name, CameraManipulator *cm);
|
||||
|
||||
/**
|
||||
Add a camera manipulator with an autogenerated keybinding which is '1' + previous number of camera's registerd.
|
||||
Add a camera manipulator with an autogenerated keybinding which is '1' + previous number of camera's registered.
|
||||
*/
|
||||
void addNumberedMatrixManipulator(CameraManipulator *cm);
|
||||
|
||||
|
@ -90,7 +90,7 @@ class OSGSHADOW_EXPORT MinimalShadowMap : public StandardShadowMap
|
||||
// when scene objects are put on earth ellipsoid surface.
|
||||
|
||||
// Other scenarios are also possible for example when models are
|
||||
// built in XZY space which would require identity matrix with swapped colums
|
||||
// built in XZY space which would require identity matrix with swapped columns
|
||||
|
||||
osg::Matrix _modellingSpaceToWorld;
|
||||
float _maxFarPlane;
|
||||
|
@ -61,7 +61,7 @@ class OSGSHADOW_EXPORT StandardShadowMap : public DebugShadowMap
|
||||
// Example: Imagine we want to swap base(0) and shadow(1) indices:
|
||||
// We have to do an extra step to make sure both do not end up as 1
|
||||
//
|
||||
// // initialy change base to something else than 1
|
||||
// // initially change base to something else than 1
|
||||
// setBaseTextureCoordIndex( 100 );
|
||||
// // now search and replace all gl_TexCord[1] to gl_TexCord[0]
|
||||
// setShadowTextureCoordIndex( 0 );
|
||||
|
@ -53,7 +53,7 @@ Caveats:
|
||||
- It's possible to render the whole sphere by specifying elevation
|
||||
and azimuth ranges round the full 360 degrees. When doing
|
||||
so you may consider switching the planes, spokes, and edge lines
|
||||
off, to avoid rendering artefacts, e.g. the upper and lower
|
||||
off, to avoid rendering artifacts, e.g. the upper and lower
|
||||
planes will be coincident.
|
||||
|
||||
*/
|
||||
@ -214,27 +214,27 @@ public:
|
||||
/** A list of vertex arrays representing a list of lines.*/
|
||||
typedef std::vector< osg::ref_ptr<osg::Vec3Array> > LineList;
|
||||
|
||||
/** Compute the interesection lines between subgraph and this sphere segment.
|
||||
* The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment.
|
||||
/** Compute the intersection lines between subgraph and this sphere segment.
|
||||
* The matrix is the transform that takes the subgraph into the same coordinate frame as the sphere segment.
|
||||
* The resulting intersections are in the coordinate frame of the sphere segment. */
|
||||
LineList computeIntersection(const osg::Matrixd& matrix, osg::Node* subgraph);
|
||||
|
||||
/** Compute the interesection lines between specified drawable and this sphere segment.
|
||||
* The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment.
|
||||
/** Compute the intersection lines between specified drawable and this sphere segment.
|
||||
* The matrix is the transform that takes the subgraph into the same coordinate frame as the sphere segment.
|
||||
* The resulting intersections are in the coordinate frame of the sphere segment. */
|
||||
LineList computeIntersection(const osg::Matrixd& matrix, osg::Drawable* drawable);
|
||||
|
||||
/** Compute the interesection lines between subgraph and this sphere segment.
|
||||
* The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment.
|
||||
/** Compute the intersection lines between subgraph and this sphere segment.
|
||||
* The matrix is the transform that takes the subgraph into the same coordinate frame as the sphere segment.
|
||||
* The resulting intersections are in the coordinate frame of the sphere segment. */
|
||||
osg::Node* computeIntersectionSubgraph(const osg::Matrixd& matrix, osg::Node* subgraph);
|
||||
|
||||
/** Compute the interesection lines between specified drawable and this sphere segment.
|
||||
* The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment.
|
||||
/** Compute the intersection lines between specified drawable and this sphere segment.
|
||||
* The matrix is the transform that takes the subgraph into the same coordinate frame as the sphere segment.
|
||||
* The resulting intersections are in the coordinate frame of the sphere segment. */
|
||||
osg::Node* computeIntersectionSubgraph(const osg::Matrixd& matrix, osg::Drawable* drawable);
|
||||
|
||||
/** recompute the vertex positions of the rendering meshes/lines thtat represent the sphere segment.*/
|
||||
/** recompute the vertex positions of the rendering meshes/lines that represent the sphere segment.*/
|
||||
void updatePositions();
|
||||
|
||||
/** recompute the primitives rendering meshes/lines thtat represent the sphere segment.*/
|
||||
|
@ -73,7 +73,7 @@ public:
|
||||
* placing text against noisy backgrounds.
|
||||
* The color of the background shadow text is specified by setBackdropColor().
|
||||
* DROP_SHADOW_BOTTOM_RIGHT will draw backdrop text to the right and down of
|
||||
* the normal text. Other DROW_SHADOW_* modes do the same for their repective directions.
|
||||
* the normal text. Other DROW_SHADOW_* modes do the same for their respective directions.
|
||||
* OUTLINE will draw backdrop text so that it appears the text has an outline
|
||||
* or border around the normal text. This mode is particularly useful against
|
||||
* really noisy backgrounds that may put text on top of things that have
|
||||
|
@ -466,7 +466,7 @@ inline RenderLeaf* CullVisitor::createOrReuseRenderLeaf(osg::Drawable* drawable,
|
||||
while (_currentReuseRenderLeafIndex<_reuseRenderLeafList.size() &&
|
||||
_reuseRenderLeafList[_currentReuseRenderLeafIndex]->referenceCount()>1)
|
||||
{
|
||||
osg::notify(osg::NOTICE)<<"Warning:createOrReuseRenderLeaf() skipping multiply refrenced entry."<< std::endl;
|
||||
osg::notify(osg::NOTICE)<<"Warning:createOrReuseRenderLeaf() skipping multiply referenced entry."<< std::endl;
|
||||
++_currentReuseRenderLeafIndex;
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@ public:
|
||||
virtual bool outside(const osg::Vec3 &testpoint) const;
|
||||
|
||||
/** Tessellate the constraint loops so that the crossing points are interpolated
|
||||
* and added to the contraints for the triangulation. */
|
||||
* and added to the constraints for the triangulation. */
|
||||
void handleOverlaps(void);
|
||||
|
||||
protected:
|
||||
|
@ -107,7 +107,7 @@ class OSGUTIL_EXPORT IncrementalCompileOperation : public osg::GraphicsOperation
|
||||
/** ConservativeTimeRatio governs how much of the measured spare time in each frame is used for flushing deleted and compile new OpenGL objects.
|
||||
* Default value is 0.5, valid range is 0.1 to 1.0.
|
||||
* A ratio near 1.0 will lead to paged databases being compiled and merged quicker but increase the chances of frame drop.
|
||||
* A ratio near 0.1 will lead to paged databases being compiled and merged closer but reduse the chances of frame drop.*/
|
||||
* A ratio near 0.1 will lead to paged databases being compiled and merged closer but reduce the chances of frame drop.*/
|
||||
void setConservativeTimeRatio(double ratio) { _conservativeTimeRatio = ratio; }
|
||||
double getConservativeTimeRatio() const { return _conservativeTimeRatio; }
|
||||
|
||||
|
@ -323,7 +323,7 @@ class OSGUTIL_EXPORT SceneView : public osg::Object, public osg::CullSettings
|
||||
/** search through any pre and post RenderStages that reference a Camera, and take a reference to each of these cameras to prevent them being deleted while they are still be used by the drawing thread.*/
|
||||
void collateReferencesToDependentCameras();
|
||||
|
||||
/** clear the refence to any any dependent cameras.*/
|
||||
/** clear the reference to any any dependent cameras.*/
|
||||
void clearReferencesToDependentCameras();
|
||||
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include <vector>
|
||||
|
||||
#ifndef CALLBACK
|
||||
/* Win32 calling conventions. (or a least thats what the GLUT example tess.c uses.)*/
|
||||
/* Win32 calling conventions. (or a least that's what the GLUT example tess.c uses.)*/
|
||||
#define CALLBACK
|
||||
#endif
|
||||
|
||||
|
@ -74,7 +74,7 @@ class OSGUTIL_EXPORT UpdateVisitor : public osg::NodeVisitor
|
||||
}
|
||||
|
||||
// The following overrides are technically redundant as the default implementation would eventually trickle down to
|
||||
// apply(osg::Node&); - however defining these explicitely should save a couple of virtual function calls
|
||||
// apply(osg::Node&); - however defining these explicitly should save a couple of virtual function calls
|
||||
virtual void apply(osg::Geode& node) { handle_callbacks_and_traverse(node); }
|
||||
virtual void apply(osg::Billboard& node) { handle_callbacks_and_traverse(node); }
|
||||
virtual void apply(osg::LightSource& node) { handle_callbacks_and_traverse(node); }
|
||||
|
@ -47,7 +47,7 @@ class OSGVIEWER_EXPORT ViewConfig : public osg::Object
|
||||
/** configure method that is overridden by Config subclasses.*/
|
||||
virtual void configure(osgViewer::View& /*view*/) const {}
|
||||
|
||||
/** convenience method for getting the relavent display settings to use.*/
|
||||
/** convenience method for getting the relevant display settings to use.*/
|
||||
virtual osg::DisplaySettings* getActiveDisplaySetting(osgViewer::View& view) const;
|
||||
};
|
||||
|
||||
|
@ -23,7 +23,7 @@ namespace osgWidget {
|
||||
// Externally defined; does this work in Windows?
|
||||
struct LuaEngineData;
|
||||
|
||||
// The actual Engine itself. Every attempt is made to export the implemenation into the
|
||||
// The actual Engine itself. Every attempt is made to export the implementation into the
|
||||
// source file, rather than having it here.
|
||||
class OSGWIDGET_EXPORT LuaEngine: public ScriptEngine
|
||||
{
|
||||
|
@ -638,7 +638,7 @@ class OSGWIDGET_EXPORT Window:
|
||||
// This method is passed the additional values by which width and height should be
|
||||
// modified as calculed by the parent method, Window::resize. Keep in mind that these
|
||||
// values can be negative (indicating a potential "shrink" request) or positive (which
|
||||
// would indicate a "grow" reqeust).
|
||||
// would indicate a "grow" request).
|
||||
virtual void _resizeImplementation(point_type, point_type) = 0;
|
||||
|
||||
// These are made into implementation functions since getting the width or height
|
||||
|
@ -401,7 +401,7 @@ int Thread::GetConcurrency()
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: Constructor
|
||||
// Description: Constructor
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
@ -418,7 +418,7 @@ Thread::Thread()
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: Destructor
|
||||
// Description: Destructor
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
|
@ -97,7 +97,7 @@ Barrier::Barrier(int numThreads) {
|
||||
|
||||
}
|
||||
|
||||
#endif // ] Priority sheduling
|
||||
#endif // ] Priority scheduling
|
||||
|
||||
#endif // ] ALLOW_PRIORITY_SCHEDULING
|
||||
|
||||
|
@ -76,7 +76,7 @@ void condition_cleanup_handler(void *arg) {
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: Constructor
|
||||
// Description: Constructor
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
@ -97,7 +97,7 @@ Condition::Condition() {
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: Destructor
|
||||
// Description: Destructor
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
@ -118,7 +118,7 @@ Condition::~Condition() {
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: wait on a condition
|
||||
// Description: wait on a condition
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
@ -145,7 +145,7 @@ int Condition::wait(Mutex *mutex) {
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: wait on a condition, for a specified period of time
|
||||
// Description: wait on a condition, for a specified period of time
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
@ -191,7 +191,7 @@ int Condition::wait(Mutex *mutex, unsigned long int ms) {
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: signal a thread to wake up.
|
||||
// Description: signal a thread to wake up.
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
@ -205,7 +205,7 @@ int Condition::signal() {
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: signal many threads to wake up.
|
||||
// Description: signal many threads to wake up.
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
|
@ -26,7 +26,7 @@ using namespace OpenThreads;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: Constructor
|
||||
// Description: Constructor
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
@ -101,7 +101,7 @@ Mutex::Mutex(MutexType type):
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: Destructor
|
||||
// Description: Destructor
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
@ -118,7 +118,7 @@ Mutex::~Mutex() {
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: lock the mutex
|
||||
// Description: lock the mutex
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
@ -133,7 +133,7 @@ int Mutex::lock() {
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: unlock the mutex
|
||||
// Description: unlock the mutex
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
@ -148,7 +148,7 @@ int Mutex::unlock() {
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Decription: test if the mutex may be locked
|
||||
// Description: test if the mutex may be locked
|
||||
//
|
||||
// Use: public.
|
||||
//
|
||||
|
@ -622,7 +622,7 @@ void ArgumentParser::reportRemainingOptionsAsUnrecognized(ErrorSeverity severity
|
||||
|
||||
for(int pos=1;pos<argc();++pos)
|
||||
{
|
||||
// if an option and havn't been previous querried for report as unrecognized.
|
||||
// if an option and haven't been previous querried for report as unrecognized.
|
||||
if (isOption(pos) && options.find(_argv[pos])==options.end())
|
||||
{
|
||||
reportError(std::string("unrecognized option ")+std::string(_argv[pos]),severity);
|
||||
|
@ -620,7 +620,7 @@ osg::ref_ptr<GLBufferObject> GLBufferObjectSet::takeFromOrphans(BufferObject* bu
|
||||
|
||||
osg::ref_ptr<GLBufferObject> GLBufferObjectSet::takeOrGenerate(BufferObject* bufferObject)
|
||||
{
|
||||
// see if we can recyle GLBufferObject from the orphan list
|
||||
// see if we can recycle GLBufferObject from the orphan list
|
||||
{
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_mutex);
|
||||
if (!_pendingOrphanedGLBufferObjects.empty())
|
||||
|
@ -156,7 +156,7 @@ void CollectOccludersVisitor::apply(osg::OccluderNode& node)
|
||||
if (node.getOccluder())
|
||||
{
|
||||
// computeOccluder will check if the occluder is the view frustum,
|
||||
// if it ins't then the it will return false, when in it will
|
||||
// if it isn't then the it will return false, when in it will
|
||||
// clip the occluder's polygons in clip space, then create occluder
|
||||
// planes, all with their normals facing inward towards the volume,
|
||||
// and then transform them back into projection space.
|
||||
|
@ -16,7 +16,7 @@ using namespace osg;
|
||||
|
||||
DrawPixels::DrawPixels()
|
||||
{
|
||||
// turn off display lists right now, just incase we want to modify the projection matrix along the way.
|
||||
// turn off display lists right now, just in case we want to modify the projection matrix along the way.
|
||||
setSupportsDisplayList(false);
|
||||
|
||||
_position.set(0.0f,0.0f,0.0f);
|
||||
|
@ -127,7 +127,7 @@ public:
|
||||
|
||||
virtual void deleteAllGLObjects()
|
||||
{
|
||||
OSG_INFO<<"DisplayListManager::deleteAllGLObjects() Not currently implementated"<<std::endl;
|
||||
OSG_INFO<<"DisplayListManager::deleteAllGLObjects() Not currently implemented"<<std::endl;
|
||||
}
|
||||
|
||||
virtual void discardAllGLObjects()
|
||||
|
@ -122,7 +122,7 @@ void GLObjectManager::flushAllDeletedGLObjects()
|
||||
|
||||
void GLObjectManager::deleteAllGLObjects()
|
||||
{
|
||||
OSG_INFO<<"void "<<_name<<"::deleteAllGLObjects() : Not Implementated"<<std::endl;
|
||||
OSG_INFO<<"void "<<_name<<"::deleteAllGLObjects() : Not Implemented"<<std::endl;
|
||||
}
|
||||
|
||||
void GLObjectManager::discardAllGLObjects()
|
||||
@ -145,6 +145,6 @@ void GLObjectManager::scheduleGLObjectForDeletion(GLuint globj)
|
||||
|
||||
GLuint GLObjectManager::createGLObject()
|
||||
{
|
||||
OSG_INFO<<"void "<<_name<<"::createGLObject() : Not Implementated"<<std::endl;
|
||||
OSG_INFO<<"void "<<_name<<"::createGLObject() : Not Implemented"<<std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
@ -683,7 +683,7 @@ unsigned int Image::computePixelSizeInBits(GLenum format,GLenum type)
|
||||
// which raises the question of how to actually query for these sizes...
|
||||
// will need to revisit this issue, for now just report an error.
|
||||
// this is possible a bit of mute point though as since the ARB compressed formats
|
||||
// arn't yet used for storing images to disk, so its likely that users wont have
|
||||
// aren't yet used for storing images to disk, so its likely that users wont have
|
||||
// osg::Image's for pixel formats set the ARB compressed formats, just using these
|
||||
// compressed formats as internal texture modes. This is very much speculation though
|
||||
// if get the below error then its time to revist this issue :-)
|
||||
@ -998,7 +998,7 @@ int Image::computeNearestPowerOfTwo(int s,float bias)
|
||||
{
|
||||
// it isn't so lets find the closest power of two.
|
||||
// yes, logf and powf are slow, but this code should
|
||||
// only be called during scene graph initilization,
|
||||
// only be called during scene graph initialization,
|
||||
// if at all, so not critical in the greater scheme.
|
||||
float p2 = logf((float)s)/logf(2.0f);
|
||||
float rounded_p2 = floorf(p2+bias);
|
||||
|
@ -222,7 +222,7 @@ Quat Matrix_implementation::getRotate() const
|
||||
QZ = 0.5 * sqrt( osg::maximum( 0.0, 1.0 - _mat[0][0] - _mat[1][1] + _mat[2][2] ) );
|
||||
|
||||
#if 0
|
||||
// Robert Osfield, June 7th 2007, arggg this new implementation produces many many errors, so have to revert to sign(..) orignal below.
|
||||
// Robert Osfield, June 7th 2007, arggg this new implementation produces many many errors, so have to revert to sign(..) original below.
|
||||
QX = QX * osg::signOrZero( _mat[1][2] - _mat[2][1]) ;
|
||||
QY = QY * osg::signOrZero( _mat[2][0] - _mat[0][2]) ;
|
||||
QZ = QZ * osg::signOrZero( _mat[0][1] - _mat[1][0]) ;
|
||||
|
@ -92,7 +92,7 @@ Node::Node(const Node& node,const CopyOp& copyop):
|
||||
|
||||
Node::~Node()
|
||||
{
|
||||
// cleanly detatch any associated stateset (include remove parent links)
|
||||
// cleanly detach any associated stateset (include remove parent links)
|
||||
setStateSet(0);
|
||||
}
|
||||
|
||||
|
@ -77,7 +77,7 @@ void DrawElementsIndirectUInt::draw(State& state, bool /*useVertexBufferObjects*
|
||||
state.bindElementBufferObject(ebo);
|
||||
|
||||
state.get<GLExtensions>()-> glDrawElementsIndirect(mode, GL_UNSIGNED_INT,
|
||||
(const GLvoid *)(dibo->getOffset(_indirectCommandArray->getBufferIndex()) //command array adress
|
||||
(const GLvoid *)(dibo->getOffset(_indirectCommandArray->getBufferIndex()) //command array address
|
||||
+_firstCommand* _indirectCommandArray->getElementSize())// runtime offset computaion can be sizeof(*_indirectCommandArray->begin())
|
||||
);
|
||||
}
|
||||
|
@ -209,7 +209,7 @@ bool ShadowVolumeOccluder::computeOccluder(const NodePath& nodePath,const Convex
|
||||
// first transform occluder polygon into clipspace by multiple it by c[i] = v[i]*(MV*P)
|
||||
// then push to coords to far plane by setting its coord to c[i].z = -1.
|
||||
// then transform far plane polygon back into projection space, by p[i]*inv(P)
|
||||
// compute orientation of front plane, if normal.z()<0 then facing away from eye pont, so reverse the polygons, or simply invert planes.
|
||||
// compute orientation of front plane, if normal.z()<0 then facing away from eye point, so reverse the polygons, or simply invert planes.
|
||||
// compute volume (quality) between front polygon in projection space and back polygon in projection space.
|
||||
|
||||
|
||||
|
@ -373,7 +373,7 @@ void State::reset()
|
||||
as.changed = true;
|
||||
}
|
||||
|
||||
// we can do a straight clear, we arn't interested in GL_DEPTH_TEST defaults in texture modes.
|
||||
// we can do a straight clear, we aren't interested in GL_DEPTH_TEST defaults in texture modes.
|
||||
for(TextureModeMapList::iterator tmmItr=_textureModeMapList.begin();
|
||||
tmmItr!=_textureModeMapList.end();
|
||||
++tmmItr)
|
||||
@ -1316,7 +1316,7 @@ bool State::convertVertexShaderSourceToOsgBuiltIns(std::string& source) const
|
||||
std::string attributeQualifier("attribute ");
|
||||
|
||||
// find the first legal insertion point for replacement declarations. GLSL requires that nothing
|
||||
// precede a "#verson" compiler directive, so we must insert new declarations after it.
|
||||
// precede a "#version" compiler directive, so we must insert new declarations after it.
|
||||
std::string::size_type declPos = source.rfind( "#version " );
|
||||
if ( declPos != std::string::npos )
|
||||
{
|
||||
|
@ -1186,7 +1186,7 @@ void StateSet::addUniform(Uniform* uniform, StateAttribute::OverrideValue value)
|
||||
{
|
||||
if (itr->second.first==uniform)
|
||||
{
|
||||
// chaning just override
|
||||
// changing just override
|
||||
itr->second.second = value&(StateAttribute::OVERRIDE|StateAttribute::PROTECTED);
|
||||
}
|
||||
else
|
||||
|
@ -1301,7 +1301,7 @@ int Texture::compareTexture(const Texture& rhs) const
|
||||
COMPARE_StateAttribute_Parameter(_useHardwareMipMapGeneration)
|
||||
COMPARE_StateAttribute_Parameter(_internalFormatMode)
|
||||
|
||||
// only compare _internalFomat is it has alrady been set in both lhs, and rhs
|
||||
// only compare _internalFomat is it has already been set in both lhs, and rhs
|
||||
if (_internalFormat!=0 && rhs._internalFormat!=0)
|
||||
{
|
||||
COMPARE_StateAttribute_Parameter(_internalFormat)
|
||||
|
@ -211,7 +211,7 @@ void Texture1D::apply(State& state) const
|
||||
|
||||
applyTexParameters(GL_TEXTURE_1D,state);
|
||||
|
||||
// update the modified count to show that it is upto date.
|
||||
// update the modified count to show that it is up to date.
|
||||
getModifiedCount(contextID) = _image->getModifiedCount();
|
||||
|
||||
applyTexImage1D(GL_TEXTURE_1D,_image.get(),state, _textureWidth, _numMipmapLevels);
|
||||
|
@ -83,7 +83,7 @@ public:
|
||||
|
||||
virtual void deleteAllGLObjects()
|
||||
{
|
||||
OSG_INFO<<"VertexArrayStateManager::deleteAllGLObjects() Not currently implementated"<<std::endl;
|
||||
OSG_INFO<<"VertexArrayStateManager::deleteAllGLObjects() Not currently implemented"<<std::endl;
|
||||
}
|
||||
|
||||
virtual void discardAllGLObjects()
|
||||
|
@ -48,7 +48,7 @@ bool MorphTransformHardware::init(MorphGeometry& morphGeometry)
|
||||
if(pos)
|
||||
{
|
||||
pos->setDataVariance(osg::Object::STATIC);
|
||||
///check if source is setted correctly
|
||||
///check if source is set correctly
|
||||
if (!vertexSource|| vertexSource->size() != pos->size())
|
||||
{
|
||||
vertexSource =(static_cast<osg::Vec3Array*>( pos->clone(osg::CopyOp::DEEP_COPY_ARRAYS)));
|
||||
@ -116,7 +116,7 @@ bool MorphTransformHardware::init(MorphGeometry& morphGeometry)
|
||||
osg::ref_ptr<osg::Program> program ;
|
||||
osg::ref_ptr<osg::Shader> vertexshader;
|
||||
osg::ref_ptr<osg::StateSet> stateset = morphGeometry.getOrCreateStateSet();
|
||||
//grab geom source program and vertex shader if _shader is not setted
|
||||
//grab geom source program and vertex shader if _shader is not set
|
||||
if(!_shader.valid() && (program = (osg::Program*)stateset->getAttribute(osg::StateAttribute::PROGRAM)))
|
||||
{
|
||||
for(unsigned int i=0;i<program->getNumShaders();++i)
|
||||
@ -135,7 +135,7 @@ bool MorphTransformHardware::init(MorphGeometry& morphGeometry)
|
||||
}
|
||||
|
||||
program->setName("HardwareMorphing");
|
||||
//set default source if _shader is not user setted
|
||||
//set default source if _shader is not user set
|
||||
if (!vertexshader.valid())
|
||||
{
|
||||
if (!_shader.valid()) vertexshader = osgDB::readRefShaderFile(osg::Shader::VERTEX,"morphing.vert");
|
||||
|
@ -211,7 +211,7 @@ bool RigTransformHardware::buildPalette(const BoneMap& boneMap, const RigGeometr
|
||||
|
||||
if (bonename.empty())
|
||||
{
|
||||
OSG_WARN << "RigTransformHardware::VertexInfluenceMap contains unamed bone IndexWeightList" << std::endl;
|
||||
OSG_WARN << "RigTransformHardware::VertexInfluenceMap contains unnamed bone IndexWeightList" << std::endl;
|
||||
}
|
||||
BoneMap::const_iterator bmit = boneMap.find(bonename);
|
||||
if (bmit == boneMap.end() )
|
||||
@ -297,7 +297,7 @@ bool RigTransformHardware::init(RigGeometry& rig)
|
||||
osg::ref_ptr<osg::Shader> vertexshader;
|
||||
osg::ref_ptr<osg::StateSet> stateset = rig.getOrCreateStateSet();
|
||||
|
||||
//grab geom source program and vertex shader if _shader is not setted
|
||||
//grab geom source program and vertex shader if _shader is not set
|
||||
if(!_shader.valid() && (program = (osg::Program*)stateset->getAttribute(osg::StateAttribute::PROGRAM)))
|
||||
{
|
||||
for(unsigned int i = 0; i<program->getNumShaders(); ++i)
|
||||
@ -312,7 +312,7 @@ bool RigTransformHardware::init(RigGeometry& rig)
|
||||
program = new osg::Program;
|
||||
program->setName("HardwareSkinning");
|
||||
}
|
||||
//set default source if _shader is not user setted
|
||||
//set default source if _shader is not user set
|
||||
if (!vertexshader.valid())
|
||||
{
|
||||
if (!_shader.valid()) vertexshader = osgDB::readRefShaderFile(osg::Shader::VERTEX,"skinning.vert");
|
||||
|
@ -55,7 +55,7 @@ void RigTransformSoftware::buildMinimumUpdateSet( const RigGeometry&rig )
|
||||
|
||||
if (bonename.empty())
|
||||
{
|
||||
OSG_WARN << "RigTransformSoftware::VertexInfluenceMap contains unamed bone IndexWeightList" << std::endl;
|
||||
OSG_WARN << "RigTransformSoftware::VertexInfluenceMap contains unnamed bone IndexWeightList" << std::endl;
|
||||
}
|
||||
for(IndexWeightList::const_iterator infit = inflist.begin(); infit!=inflist.end(); ++infit)
|
||||
{
|
||||
@ -165,7 +165,7 @@ bool RigTransformSoftware::init(RigGeometry&rig)
|
||||
|
||||
if (bonename.empty())
|
||||
{
|
||||
OSG_WARN << "RigTransformSoftware::VertexInfluenceMap contains unamed bone IndexWeightList" << std::endl;
|
||||
OSG_WARN << "RigTransformSoftware::VertexInfluenceMap contains unnamed bone IndexWeightList" << std::endl;
|
||||
}
|
||||
BoneMap::const_iterator bmit = boneMap.find(bonename);
|
||||
if (bmit == boneMap.end() )
|
||||
|
@ -71,7 +71,7 @@ void VertexInfluenceMap::normalize(unsigned int numvert)
|
||||
}
|
||||
|
||||
}
|
||||
///remove weakest influences in order to fit targetted numbonepervertex
|
||||
///remove weakest influences in order to fit targeted numbonepervertex
|
||||
void VertexInfluenceMap::cullInfluenceCountPerVertex(unsigned int numbonepervertex,float minweight, bool renormalize)
|
||||
{
|
||||
|
||||
@ -139,7 +139,7 @@ void VertexInfluenceMap::computePerVertexInfluenceList(std::vector<BoneWeightLis
|
||||
const IndexWeightList& inflist = it->second;
|
||||
if (it->first.empty())
|
||||
{
|
||||
OSG_WARN << "VertexInfluenceMap::computePerVertexInfluenceList contains unamed bone IndexWeightList" << std::endl;
|
||||
OSG_WARN << "VertexInfluenceMap::computePerVertexInfluenceList contains unnamed bone IndexWeightList" << std::endl;
|
||||
}
|
||||
|
||||
for(IndexWeightList::const_iterator infit = inflist.begin(); infit != inflist.end(); ++infit)
|
||||
|
@ -308,7 +308,7 @@ osg::Object* ClassInterface::createObject(const std::string& compoundClassName)
|
||||
}
|
||||
else
|
||||
{
|
||||
OSG_NOTICE<<"ClassInterface::createObject("<<compoundClassName<<"), No object wrapper avaiable."<<std::endl;
|
||||
OSG_NOTICE<<"ClassInterface::createObject("<<compoundClassName<<"), No object wrapper available."<<std::endl;
|
||||
return 0;
|
||||
}
|
||||
// return (ow!=0) ? ow->createInstance() : 0;
|
||||
|
@ -79,7 +79,7 @@ DynamicLibrary* DynamicLibrary::loadLibrary(const std::string& libraryName)
|
||||
|
||||
std::string fullLibraryName = osgDB::findLibraryFile(libraryName);
|
||||
if (!fullLibraryName.empty()) handle = getLibraryHandle( fullLibraryName ); // try the lib we have found
|
||||
else handle = getLibraryHandle( libraryName ); // havn't found a lib ourselves, see if the OS can find it simply from the library name.
|
||||
else handle = getLibraryHandle( libraryName ); // haven't found a lib ourselves, see if the OS can find it simply from the library name.
|
||||
|
||||
if (handle) return new DynamicLibrary(libraryName,handle);
|
||||
|
||||
|
@ -155,7 +155,7 @@ std::string osgDB::getNameLessExtension(const std::string& fileName)
|
||||
// strip all extensions from the filename.
|
||||
std::string osgDB::getNameLessAllExtensions(const std::string& fileName)
|
||||
{
|
||||
// Finds start serach position: from last slash, or the beginning of the string if none found
|
||||
// Finds start search position: from last slash, or the beginning of the string if none found
|
||||
std::string::size_type startPos = fileName.find_last_of(PATH_SEPARATORS); // Finds forward slash *or* back slash
|
||||
if (startPos == std::string::npos) startPos = 0;
|
||||
std::string::size_type dot = fileName.find_first_of('.', startPos); // Finds *FIRST* dot from start pos
|
||||
@ -449,7 +449,7 @@ std::string osgDB::getPathRelative(const std::string& from, const std::string& t
|
||||
|
||||
// Definition: an "element" is a part between slashes. Ex: "/a/b" has two elements ("a" and "b").
|
||||
// Algorithm:
|
||||
// 1. If paths are neither both absolute nor both relative, then we cannot do anything (we need to make them absolute, but need additionnal info on how to make it). Return.
|
||||
// 1. If paths are neither both absolute nor both relative, then we cannot do anything (we need to make them absolute, but need additional info on how to make it). Return.
|
||||
// 2. If both paths are absolute and root isn't the same (for Windows only, as roots are of the type "C:", "D:"), then the operation is impossible. Return.
|
||||
// 3. Iterate over two paths elements until elements are equal
|
||||
// 4. For each remaining element in "from", add ".." to result
|
||||
|
@ -831,8 +831,8 @@ bool StandardManipulator::setCenterByMousePointerIntersection( const GUIEventAda
|
||||
}
|
||||
|
||||
|
||||
/** Makes mouse pointer intersection test with the geometry bellow the pointer
|
||||
and starts animation to center camera to look at the closest hit bellow the mouse pointer.
|
||||
/** Makes mouse pointer intersection test with the geometry below the pointer
|
||||
and starts animation to center camera to look at the closest hit below the mouse pointer.
|
||||
|
||||
If there is a hit, animation is started and true is returned.
|
||||
Otherwise, the method returns false.*/
|
||||
|
@ -49,7 +49,7 @@ Particle* ConnectedParticleSystem::createParticle(const Particle* ptemplate)
|
||||
|
||||
if (_startParticle == Particle::INVALID_INDEX)
|
||||
{
|
||||
// we are the fisrt particle create, so start the connect particle list
|
||||
// we are the first particle create, so start the connect particle list
|
||||
_startParticle = particleIndex;
|
||||
}
|
||||
|
||||
|
@ -73,7 +73,7 @@ void osgParticle::ParticleProcessor::traverse(osg::NodeVisitor& nv)
|
||||
ParticleSystem::ScopedWriteLock lock(*(_ps->getReadWriteMutex()));
|
||||
|
||||
//added- 1/17/06- bgandere@nps.edu
|
||||
//a check to make sure we havent updated yet this frame
|
||||
//a check to make sure we haven't updated yet this frame
|
||||
if(_frameNumber < nv.getFrameStamp()->getFrameNumber())
|
||||
{
|
||||
|
||||
|
@ -232,7 +232,7 @@ void osgParticle::ParticleSystem::drawImplementation(osg::RenderInfo& renderInfo
|
||||
|
||||
if (_useVertexArray)
|
||||
{
|
||||
// note from Robert Osfield, September 2016, this block implementated for backwards compatibility but is pretty way vertex array/shaders were hacked into osgParticle
|
||||
// note from Robert Osfield, September 2016, this block implemented for backwards compatibility but is pretty way vertex array/shaders were hacked into osgParticle
|
||||
|
||||
// set up arrays and primitives ready to fill in
|
||||
if (!ad.vertices.valid())
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user