From Roland Smeenk, "Attached you will find a large set of small typo fixes (mainly in the comments)."
This commit is contained in:
@@ -65,7 +65,7 @@ bool AnimationPath::getInterpolatedControlPoint(double time,ControlPoint& contro
|
||||
|
||||
// we have both a lower bound and the next item.
|
||||
|
||||
// deta_time = second.time - first.time
|
||||
// delta_time = second.time - first.time
|
||||
double delta_time = second->first - first->first;
|
||||
|
||||
if (delta_time==0.0)
|
||||
|
||||
@@ -164,7 +164,7 @@ void ApplicationUsage::getFormattedString(std::string& str, const UsageMap& um,u
|
||||
if (width==0)
|
||||
{
|
||||
// word must be longer than a whole line so will need
|
||||
// to concatinate it.
|
||||
// to concatenate it.
|
||||
width = explanationWidth-1;
|
||||
concatinated = true;
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ bool ClipNode::addClipPlane(ClipPlane* clipplane)
|
||||
|
||||
if (std::find(_planes.begin(),_planes.end(),clipplane)==_planes.end())
|
||||
{
|
||||
// cliplane doesn't exist in list so add it.
|
||||
// clipplane doesn't exist in list so add it.
|
||||
_planes.push_back(clipplane);
|
||||
setLocalStateSetModes(_value);
|
||||
return true;
|
||||
@@ -82,7 +82,7 @@ bool ClipNode::removeClipPlane(ClipPlane* clipplane)
|
||||
ClipPlaneList::iterator itr = std::find(_planes.begin(),_planes.end(),clipplane);
|
||||
if (itr!=_planes.end())
|
||||
{
|
||||
// cliplane exist in list so erase it.
|
||||
// clipplane exist in list so erase it.
|
||||
_planes.erase(itr);
|
||||
setLocalStateSetModes(_value);
|
||||
return true;
|
||||
|
||||
@@ -57,7 +57,7 @@ void CullingSet::popOccludersCurrentMask(NodePath& nodePath)
|
||||
{
|
||||
//std::cout<<" popping occluder "<<itr<<std::endl;
|
||||
// we have trapped for the case an occlude potentially occluding itself,
|
||||
// to prevent this we disable the results mask so that no subsequnt
|
||||
// to prevent this we disable the results mask so that no subsequent
|
||||
// when the next pushCurrentMask calls happens this occluder is switched off.
|
||||
itr->popCurrentMask();
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
namespace osg
|
||||
{
|
||||
|
||||
// specialzed smart pointer, used to get round auto_ptr<>'s lack of the destructor reseting itself to 0.
|
||||
// specialized smart pointer, used to get round auto_ptr<>'s lack of the destructor reseting itself to 0.
|
||||
struct DeleteHandlerPointer
|
||||
{
|
||||
DeleteHandlerPointer():
|
||||
|
||||
@@ -71,7 +71,7 @@ void DrawPixels::getSubImageDimensions(unsigned int& offsetX,unsigned int& offse
|
||||
|
||||
BoundingBox DrawPixels::computeBound() const
|
||||
{
|
||||
// really needs to be dependant of view poistion and projection... will implement simple version right now.
|
||||
// really needs to be dependent of view position and projection... will implement simple version right now.
|
||||
BoundingBox bbox;
|
||||
float diagonal = 0.0f;
|
||||
if (_useSubImage)
|
||||
|
||||
@@ -206,7 +206,7 @@ void Drawable::deleteVertexBufferObject(unsigned int contextID,GLuint globj)
|
||||
}
|
||||
}
|
||||
|
||||
/** flush all the cached display list which need to be deleted
|
||||
/** flush all the cached display lists which need to be deleted
|
||||
* in the OpenGL context related to contextID.*/
|
||||
void Drawable::flushDeletedVertexBufferObjects(unsigned int contextID,double /*currentTime*/, double& availableTime)
|
||||
{
|
||||
@@ -415,7 +415,7 @@ void Drawable::setNumChildrenRequiringUpdateTraversal(unsigned int num)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
@@ -450,7 +450,7 @@ void Drawable::setNumChildrenRequiringEventTraversal(unsigned int num)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
@@ -500,7 +500,7 @@ void Drawable::compileGLObjects(RenderInfo& renderInfo) const
|
||||
// get the globj for the current contextID.
|
||||
GLuint& globj = _globjList[contextID];
|
||||
|
||||
// call the globj if already set otherwise comple and execute.
|
||||
// call the globj if already set otherwise compile and execute.
|
||||
if( globj != 0 )
|
||||
{
|
||||
glDeleteLists( globj, 1 );
|
||||
@@ -557,7 +557,7 @@ void Drawable::releaseGLObjects(State* state) const
|
||||
// get the globj for the current contextID.
|
||||
GLuint& globj = _globjList[contextID];
|
||||
|
||||
// call the globj if already set otherwise comple and execute.
|
||||
// call the globj if already set otherwise compile and execute.
|
||||
if( globj != 0 )
|
||||
{
|
||||
Drawable::deleteDisplayList(contextID,globj, getGLObjectSizeHint());
|
||||
|
||||
@@ -191,7 +191,7 @@ GLuint RenderBuffer::getObjectID(unsigned int contextID, const FBOExtensions *ex
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* FrameBufferAttachement
|
||||
* FrameBufferAttachment
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_X
|
||||
@@ -593,7 +593,7 @@ void FrameBufferObject::apply(State &state) const
|
||||
|
||||
if (dirtyAttachmentList)
|
||||
{
|
||||
// the set of of attachements appears to be thread sensitive, it shouldn't be because
|
||||
// the set of of attachments appears to be thread sensitive, it shouldn't be because
|
||||
// OpenGL FBO handles osg::FrameBufferObject has are multi-buffered...
|
||||
// so as a temporary fix will stick in a mutex to ensure that only one thread passes through here
|
||||
// at one time.
|
||||
|
||||
@@ -98,7 +98,7 @@ bool Geode::removeDrawables(unsigned int pos,unsigned int numDrawablesToRemove)
|
||||
{
|
||||
// remove this Geode from the child parent list.
|
||||
_drawables[i]->removeParent(this);
|
||||
// update the number of app calbacks removed
|
||||
// update the number of app callbacks removed
|
||||
if (_drawables[i]->requiresUpdateTraversal()) ++updateCallbackRemoved;
|
||||
if (_drawables[i]->requiresEventTraversal()) ++eventCallbackRemoved;
|
||||
}
|
||||
@@ -162,7 +162,7 @@ bool Geode::setDrawable( unsigned int i, Drawable* newDrawable )
|
||||
origDrawable->removeParent(this);
|
||||
|
||||
// note ref_ptr<> automatically handles decrementing origGset's reference count,
|
||||
// and inccrementing newGset's reference count.
|
||||
// and incrementing newGset's reference count.
|
||||
_drawables[i] = newDrawable;
|
||||
|
||||
// register as parent of child.
|
||||
|
||||
@@ -1707,7 +1707,7 @@ void Geometry::drawImplementation(RenderInfo& renderInfo) const
|
||||
}
|
||||
|
||||
|
||||
// draw primtives by the more flexible "slow" path,
|
||||
// draw primitives by the more flexible "slow" path,
|
||||
// sending OpenGL glBegin/glVertex.../glEnd().
|
||||
switch(primitiveset->getType())
|
||||
{
|
||||
@@ -2207,7 +2207,7 @@ void Geometry::accept(PrimitiveFunctor& functor) const
|
||||
functor.setVertexArray(_vertexData.array->getNumElements(),static_cast<const Vec4d*>(_vertexData.array->getDataPointer()));
|
||||
break;
|
||||
default:
|
||||
notify(WARN)<<"Warning: Geometry::accept(PrimtiveFunctor&) cannot handle Vertex Array type"<<_vertexData.array->getType()<<std::endl;
|
||||
notify(WARN)<<"Warning: Geometry::accept(PrimitiveFunctor&) cannot handle Vertex Array type"<<_vertexData.array->getType()<<std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2248,7 +2248,7 @@ void Geometry::accept(PrimitiveFunctor& functor) const
|
||||
vec4dArray = static_cast<const Vec4dArray*>(_vertexData.array.get());
|
||||
break;
|
||||
default:
|
||||
notify(WARN)<<"Warning: Geometry::accept(PrimtiveFunctor&) cannot handle Vertex Array type"<<_vertexData.array->getType()<<std::endl;
|
||||
notify(WARN)<<"Warning: Geometry::accept(PrimitiveFunctor&) cannot handle Vertex Array type"<<_vertexData.array->getType()<<std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2495,7 +2495,7 @@ void Geometry::accept(PrimitiveIndexFunctor& functor) const
|
||||
functor.setVertexArray(_vertexData.array->getNumElements(),static_cast<const Vec4d*>(_vertexData.array->getDataPointer()));
|
||||
break;
|
||||
default:
|
||||
notify(WARN)<<"Warning: Geometry::accept(PrimtiveIndexFunctor&) cannot handle Vertex Array type"<<_vertexData.array->getType()<<std::endl;
|
||||
notify(WARN)<<"Warning: Geometry::accept(PrimitiveIndexFunctor&) cannot handle Vertex Array type"<<_vertexData.array->getType()<<std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2616,7 +2616,7 @@ void Geometry::accept(PrimitiveIndexFunctor& functor) const
|
||||
return;
|
||||
}
|
||||
|
||||
unsigned int _computeNumberOfPrimtives(const osg::Geometry& geom)
|
||||
unsigned int _computeNumberOfPrimitives(const osg::Geometry& geom)
|
||||
{
|
||||
|
||||
unsigned int totalNumberOfPrimitives = 0;
|
||||
@@ -2638,7 +2638,7 @@ unsigned int _computeNumberOfPrimtives(const osg::Geometry& geom)
|
||||
default: primLength=0; osg::notify(osg::INFO)<<"prim="<<std::hex<<mode<<std::dec<<std::endl; break; // compute later when =0.
|
||||
}
|
||||
|
||||
// draw primtives by the more flexible "slow" path,
|
||||
// draw primitives by the more flexible "slow" path,
|
||||
// sending OpenGL glBegin/glVertex.../glEnd().
|
||||
switch(primitiveset->getType())
|
||||
{
|
||||
@@ -2685,7 +2685,7 @@ bool _verifyBindings(const osg::Geometry& geom, const A& arrayData)
|
||||
if (numElements!=geom.getPrimitiveSetList().size()) return false;
|
||||
break;
|
||||
case(osg::Geometry::BIND_PER_PRIMITIVE):
|
||||
if (numElements!=_computeNumberOfPrimtives(geom)) return false;
|
||||
if (numElements!=_computeNumberOfPrimitives(geom)) return false;
|
||||
break;
|
||||
case(osg::Geometry::BIND_PER_VERTEX):
|
||||
{
|
||||
@@ -2776,7 +2776,7 @@ void _computeCorrectBindingsAndArraySizes(std::ostream& out, const osg::Geometry
|
||||
}
|
||||
|
||||
// check to see if binding might be per primitive
|
||||
unsigned int numPrimitives = _computeNumberOfPrimtives(geom);
|
||||
unsigned int numPrimitives = _computeNumberOfPrimitives(geom);
|
||||
if (numElements==numPrimitives)
|
||||
{
|
||||
if (arrayData.binding != osg::Geometry::BIND_PER_PRIMITIVE)
|
||||
|
||||
@@ -337,7 +337,7 @@ GraphicsContext* GraphicsContext::getOrCreateCompileContext(unsigned int context
|
||||
{
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(s_contextIDMapMutex);
|
||||
s_contextIDMap[contextID]._compileContext = gc;
|
||||
osg::notify(osg::INFO)<<" succeded GraphicsContext::createCompileContext."<<std::endl;
|
||||
osg::notify(osg::INFO)<<" succeeded GraphicsContext::createCompileContext."<<std::endl;
|
||||
return gc.release();
|
||||
}
|
||||
else
|
||||
@@ -436,7 +436,7 @@ void GraphicsContext::close(bool callCloseImplementation)
|
||||
if (s_contextIDMap[_state->getContextID()]._numContexts>1) sharedContextExists = true;
|
||||
}
|
||||
|
||||
// release all the OpenGL objects in the scene graphs associted with this
|
||||
// release all the OpenGL objects in the scene graphs associated with this
|
||||
for(Cameras::iterator itr = _cameras.begin();
|
||||
itr != _cameras.end();
|
||||
++itr)
|
||||
@@ -504,7 +504,7 @@ bool GraphicsContext::makeCurrent()
|
||||
{
|
||||
_threadOfLastMakeCurrent = OpenThreads::Thread::CurrentThread();
|
||||
|
||||
// initialize extension process, note, only initializes on first
|
||||
// initialize extension process, not only initializes on first
|
||||
// call, will be a non-op on subsequent calls.
|
||||
getState()->initializeExtensionProcs();
|
||||
}
|
||||
@@ -520,7 +520,7 @@ bool GraphicsContext::makeContextCurrent(GraphicsContext* readContext)
|
||||
{
|
||||
_threadOfLastMakeCurrent = OpenThreads::Thread::CurrentThread();
|
||||
|
||||
// initialize extension proces, not only initializes on first
|
||||
// initialize extension process, not only initializes on first
|
||||
// call, will be a non-op on subsequent calls.
|
||||
getState()->initializeExtensionProcs();
|
||||
}
|
||||
@@ -590,7 +590,7 @@ void GraphicsContext::add(Operation* operation)
|
||||
{
|
||||
osg::notify(osg::INFO)<<"Doing add"<<std::endl;
|
||||
|
||||
// aquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
// acquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_operationsMutex);
|
||||
|
||||
// add the operation to the end of the list
|
||||
@@ -603,7 +603,7 @@ void GraphicsContext::remove(Operation* operation)
|
||||
{
|
||||
osg::notify(osg::INFO)<<"Doing remove operation"<<std::endl;
|
||||
|
||||
// aquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
// acquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_operationsMutex);
|
||||
|
||||
for(OperationQueue::iterator itr = _operations.begin();
|
||||
@@ -623,10 +623,10 @@ void GraphicsContext::remove(const std::string& name)
|
||||
{
|
||||
osg::notify(osg::INFO)<<"Doing remove named operation"<<std::endl;
|
||||
|
||||
// aquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
// acquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_operationsMutex);
|
||||
|
||||
// find the remove all operations with specificed name
|
||||
// find the remove all operations with specified name
|
||||
for(OperationQueue::iterator itr = _operations.begin();
|
||||
itr!=_operations.end();)
|
||||
{
|
||||
|
||||
@@ -86,10 +86,10 @@ void ReleaseContext_Block_MakeCurrentOperation::operator () (GraphicsContext* co
|
||||
// reset the block so that it the next call to block()
|
||||
reset();
|
||||
|
||||
// block this thread, untill the block is released externally.
|
||||
// block this thread, until the block is released externally.
|
||||
block();
|
||||
|
||||
// re aquire the graphcis context.
|
||||
// re acquire the graphics context.
|
||||
context->makeCurrent();
|
||||
}
|
||||
|
||||
|
||||
@@ -239,7 +239,7 @@ void Node::setUpdateCallback(NodeCallback* nc)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
@@ -275,7 +275,7 @@ void Node::setNumChildrenRequiringUpdateTraversal(unsigned int num)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
@@ -317,7 +317,7 @@ void Node::setEventCallback(NodeCallback* nc)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
@@ -353,7 +353,7 @@ void Node::setNumChildrenRequiringEventTraversal(unsigned int num)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
@@ -393,7 +393,7 @@ void Node::setCullingActive(bool active)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
@@ -428,7 +428,7 @@ void Node::setNumChildrenWithCullingDisabled(unsigned int num)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
@@ -465,7 +465,7 @@ void Node::setNumChildrenWithOccluderNodes(unsigned int num)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
|
||||
@@ -68,7 +68,7 @@ ref_ptr<Operation> OperationQueue::getNextOperation(bool blockIfEmpty)
|
||||
|
||||
if (_currentOperationIterator == _operations.end())
|
||||
{
|
||||
// iterator at end of operations so reset to begining.
|
||||
// iterator at end of operations so reset to beginning.
|
||||
_currentOperationIterator = _operations.begin();
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ void OperationQueue::add(Operation* operation)
|
||||
{
|
||||
osg::notify(osg::INFO)<<"Doing add"<<std::endl;
|
||||
|
||||
// aquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
// acquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_operationsMutex);
|
||||
|
||||
// add the operation to the end of the list
|
||||
@@ -117,7 +117,7 @@ void OperationQueue::remove(Operation* operation)
|
||||
{
|
||||
osg::notify(osg::INFO)<<"Doing remove operation"<<std::endl;
|
||||
|
||||
// aquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
// acquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_operationsMutex);
|
||||
|
||||
for(Operations::iterator itr = _operations.begin();
|
||||
@@ -140,10 +140,10 @@ void OperationQueue::remove(const std::string& name)
|
||||
{
|
||||
osg::notify(osg::INFO)<<"Doing remove named operation"<<std::endl;
|
||||
|
||||
// aquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
// acquire the lock on the operations queue to prevent anyone else for modifying it at the same time
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_operationsMutex);
|
||||
|
||||
// find the remove all operations with specificed name
|
||||
// find the remove all operations with specified name
|
||||
for(Operations::iterator itr = _operations.begin();
|
||||
itr!=_operations.end();)
|
||||
{
|
||||
@@ -185,7 +185,7 @@ void OperationQueue::runOperations(Object* callingObject)
|
||||
{
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_operationsMutex);
|
||||
|
||||
// reset current operation iterator to begining if at end.
|
||||
// reset current operation iterator to beginning if at end.
|
||||
if (_currentOperationIterator==_operations.end()) _currentOperationIterator = _operations.begin();
|
||||
|
||||
for(;
|
||||
@@ -421,7 +421,7 @@ void OperationThread::run()
|
||||
if (firstTime)
|
||||
{
|
||||
// do a yield to get round a peculiar thread hang when testCancel() is called
|
||||
// in certain cirumstances - of which there is no particular pattern.
|
||||
// in certain circumstances - of which there is no particular pattern.
|
||||
YieldCurrentThread();
|
||||
firstTime = false;
|
||||
}
|
||||
|
||||
@@ -59,7 +59,8 @@ void PolygonOffset::setFactorAndUnitsMultipliersUsingBestGuessForDriver()
|
||||
if (renderer)
|
||||
{
|
||||
if ((strstr((const char*)renderer,"Radeon")!=0) ||
|
||||
(strstr((const char*)renderer,"RADEON")!=0))
|
||||
(strstr((const char*)renderer,"RADEON")!=0) ||
|
||||
(strstr((const char*)renderer,"ALL-IN-WONDER")!=0))
|
||||
{
|
||||
setFactorMultiplier(1.0f);
|
||||
setUnitsMultiplier(128.0f);
|
||||
|
||||
@@ -56,7 +56,7 @@ PolygonStipple::~PolygonStipple()
|
||||
int PolygonStipple::compare(const StateAttribute& sa) const
|
||||
{
|
||||
// check the types are equal and then create the rhs variable
|
||||
// used by the COMPARE_StateAttribute_Paramter macro's below.
|
||||
// used by the COMPARE_StateAttribute_Parameter macro's below.
|
||||
COMPARE_StateAttribute_Types(PolygonStipple,sa)
|
||||
|
||||
// compare each parameter in turn against the rhs.
|
||||
|
||||
@@ -2007,7 +2007,7 @@ Program::~Program()
|
||||
int Program::compare(const osg::StateAttribute& sa) const
|
||||
{
|
||||
// check the types are equal and then create the rhs variable
|
||||
// used by the COMPARE_StateAttribute_Paramter macro's below.
|
||||
// used by the COMPARE_StateAttribute_Parameter macro's below.
|
||||
COMPARE_StateAttribute_Types(Program,sa)
|
||||
|
||||
if( _shaderList.size() < rhs._shaderList.size() ) return -1;
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
namespace osg
|
||||
{
|
||||
|
||||
// specialzed smart pointer, used to get round auto_ptr<>'s lack of the destructor reseting itself to 0.
|
||||
// specialized smart pointer, used to get round auto_ptr<>'s lack of the destructor reseting itself to 0.
|
||||
struct DeleteHandlerPointer
|
||||
{
|
||||
DeleteHandlerPointer():
|
||||
@@ -178,7 +178,7 @@ void Referenced::setThreadSafeRefUnref(bool threadSafe)
|
||||
{
|
||||
if (!_refMutex)
|
||||
{
|
||||
// we want thread safe ref()/unref() so assing a mutex
|
||||
// we want thread safe ref()/unref() so assign a mutex
|
||||
_refMutex = new OpenThreads::Mutex;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -959,7 +959,7 @@ void DrawShapeVisitor::apply(const HeightField& field)
|
||||
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
|
||||
// draw skirt at begining if required.
|
||||
// draw skirt at beginning if required.
|
||||
if (field.getSkirtHeight()!=0.0f)
|
||||
{
|
||||
vertTop.set(0.0f,dy*(float)(row+1),field.getHeight(0,row+1)-field.getSkirtHeight());
|
||||
@@ -1294,7 +1294,7 @@ void ComputeBoundShapeVisitor::apply(const CompositeShape& group)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Accept a primtive functor for each of the shapes.
|
||||
// Accept a primitive functor for each of the shapes.
|
||||
//
|
||||
|
||||
class PrimitiveShapeVisitor : public ConstShapeVisitor
|
||||
|
||||
@@ -110,7 +110,7 @@ void State::reset()
|
||||
as.changed = true;
|
||||
}
|
||||
|
||||
// we can do a straight clear, we arn't intrested in GL_DEPTH_TEST defaults in texture modes.
|
||||
// we can do a straight clear, we arn't interested in GL_DEPTH_TEST defaults in texture modes.
|
||||
for(TextureModeMapList::iterator tmmItr=_textureModeMapList.begin();
|
||||
tmmItr!=_textureModeMapList.end();
|
||||
++tmmItr)
|
||||
@@ -147,7 +147,7 @@ void State::reset()
|
||||
// reset active texture unit values and call OpenGL
|
||||
// note, this OpenGL op precludes the use of State::reset() without a
|
||||
// valid graphics context, therefore the new implementation below
|
||||
// is prefered.
|
||||
// is preferred.
|
||||
setActiveTextureUnit(0);
|
||||
#else
|
||||
// reset active texture unit values without calling OpenGL
|
||||
@@ -365,7 +365,7 @@ void State::apply(const StateSet* dstate)
|
||||
{
|
||||
if (_checkGLErrors==ONCE_PER_ATTRIBUTE) checkGLErrors("start of State::apply(StateSet*)");
|
||||
|
||||
// equivilant to:
|
||||
// equivalent to:
|
||||
//pushStateSet(dstate);
|
||||
//apply();
|
||||
//popStateSet();
|
||||
@@ -428,7 +428,7 @@ void State::apply(const StateSet* dstate)
|
||||
}
|
||||
else
|
||||
{
|
||||
// no incomming stateset, so simply apply state.
|
||||
// no incoming stateset, so simply apply state.
|
||||
apply();
|
||||
}
|
||||
|
||||
|
||||
@@ -611,7 +611,7 @@ void StateSet::merge(const StateSet& rhs)
|
||||
if (!(lhs_mitr->second & StateAttribute::OVERRIDE ) ||
|
||||
(rhs_mitr->second & StateAttribute::PROTECTED))
|
||||
{
|
||||
// override isn't on in rhs, so overrite it with incomming
|
||||
// override isn't on in rhs, so override it with incoming
|
||||
// value.
|
||||
lhs_mitr->second = rhs_mitr->second;
|
||||
}
|
||||
@@ -636,14 +636,14 @@ void StateSet::merge(const StateSet& rhs)
|
||||
if (!(lhs_aitr->second.second & StateAttribute::OVERRIDE) ||
|
||||
(rhs_aitr->second.second & StateAttribute::PROTECTED))
|
||||
{
|
||||
// override isn't on in rhs, so overrite it with incomming
|
||||
// override isn't on in rhs, so override it with incoming
|
||||
// value.
|
||||
if (lhs_aitr->second.first!=rhs_aitr->second.first)
|
||||
{
|
||||
// new attribute so need to remove self from outgoing attribute
|
||||
lhs_aitr->second.first->removeParent(this);
|
||||
|
||||
// override isn't on in rhs, so overrite it with incomming
|
||||
// override isn't on in rhs, so override it with incoming
|
||||
// value.
|
||||
lhs_aitr->second = rhs_aitr->second;
|
||||
lhs_aitr->second.first->addParent(this);
|
||||
@@ -683,7 +683,7 @@ void StateSet::merge(const StateSet& rhs)
|
||||
if (!(lhs_mitr->second & StateAttribute::OVERRIDE) ||
|
||||
(rhs_mitr->second & StateAttribute::PROTECTED))
|
||||
{
|
||||
// override isn't on in rhs, so overrite it with incomming
|
||||
// override isn't on in rhs, so override it with incoming
|
||||
// value.
|
||||
lhs_mitr->second = rhs_mitr->second;
|
||||
}
|
||||
@@ -715,7 +715,7 @@ void StateSet::merge(const StateSet& rhs)
|
||||
if (!(lhs_aitr->second.second & StateAttribute::OVERRIDE) ||
|
||||
(rhs_aitr->second.second & StateAttribute::PROTECTED))
|
||||
{
|
||||
// override isn't on in rhs, so overrite it with incomming
|
||||
// override isn't on in rhs, so override it with incoming
|
||||
// value.
|
||||
|
||||
if (lhs_aitr->second.first!=rhs_aitr->second.first)
|
||||
@@ -751,7 +751,7 @@ void StateSet::merge(const StateSet& rhs)
|
||||
if (!(lhs_uitr->second.second & StateAttribute::OVERRIDE) ||
|
||||
(rhs_uitr->second.second & StateAttribute::PROTECTED))
|
||||
{
|
||||
// override isn't on in rhs, so overrite it with incomming
|
||||
// override isn't on in rhs, so override it with incoming
|
||||
// value.
|
||||
|
||||
if (lhs_uitr->second.first!=rhs_uitr->second.first)
|
||||
@@ -1753,7 +1753,7 @@ void StateSet::setNumChildrenRequiringUpdateTraversal(unsigned int num)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
@@ -1798,7 +1798,7 @@ void StateSet::setNumChildrenRequiringEventTraversal(unsigned int num)
|
||||
{
|
||||
// the number of callbacks has changed, need to pass this
|
||||
// on to parents so they know whether app traversal is
|
||||
// reqired on this subgraph.
|
||||
// required on this subgraph.
|
||||
for(ParentList::iterator itr =_parents.begin();
|
||||
itr != _parents.end();
|
||||
++itr)
|
||||
|
||||
@@ -510,7 +510,7 @@ void Texture::takeTextureObjects(Texture::TextureObjectListMap& toblm)
|
||||
{
|
||||
if (_textureObjectBuffer[i].valid())
|
||||
{
|
||||
//notify(INFO) << "releasing texure "<<toblm[i].size()<<std::endl;
|
||||
//notify(INFO) << "releasing texture "<<toblm[i].size()<<std::endl;
|
||||
toblm[i].push_back(_textureObjectBuffer[i]);
|
||||
}
|
||||
}
|
||||
@@ -542,7 +542,7 @@ void Texture::computeInternalFormatWithImage(const osg::Image& image) const
|
||||
else
|
||||
{
|
||||
|
||||
const unsigned int contextID = 0; // state.getContextID(); // set to 0 right now, assume same paramters for each graphics context...
|
||||
const unsigned int contextID = 0; // state.getContextID(); // set to 0 right now, assume same parameters for each graphics context...
|
||||
const Extensions* extensions = getExtensions(contextID,true);
|
||||
|
||||
switch(_internalFormatMode)
|
||||
|
||||
@@ -41,7 +41,7 @@ Texture1D::~Texture1D()
|
||||
int Texture1D::compare(const StateAttribute& sa) const
|
||||
{
|
||||
// check the types are equal and then create the rhs variable
|
||||
// used by the COMPARE_StateAttribute_Paramter macro's below.
|
||||
// used by the COMPARE_StateAttribute_Parameter macro's below.
|
||||
COMPARE_StateAttribute_Types(Texture1D,sa)
|
||||
|
||||
if (_image!=rhs._image) // smart pointer comparison.
|
||||
@@ -78,7 +78,7 @@ int Texture1D::compare(const StateAttribute& sa) const
|
||||
int result = compareTexture(rhs);
|
||||
if (result!=0) return result;
|
||||
|
||||
// compare each paramter in turn against the rhs.
|
||||
// compare each parameter in turn against the rhs.
|
||||
COMPARE_StateAttribute_Parameter(_textureWidth)
|
||||
COMPARE_StateAttribute_Parameter(_subloadCallback)
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ Texture2D::~Texture2D()
|
||||
int Texture2D::compare(const StateAttribute& sa) const
|
||||
{
|
||||
// check the types are equal and then create the rhs variable
|
||||
// used by the COMPARE_StateAttribute_Paramter macro's below.
|
||||
// used by the COMPARE_StateAttribute_Parameter macro's below.
|
||||
COMPARE_StateAttribute_Types(Texture2D,sa)
|
||||
|
||||
if (_image!=rhs._image) // smart pointer comparison.
|
||||
@@ -90,7 +90,7 @@ int Texture2D::compare(const StateAttribute& sa) const
|
||||
int result = compareTexture(rhs);
|
||||
if (result!=0) return result;
|
||||
|
||||
// compare each paramter in turn against the rhs.
|
||||
// compare each parameter in turn against the rhs.
|
||||
#if 1
|
||||
if (_textureWidth != 0 && rhs._textureWidth != 0)
|
||||
{
|
||||
|
||||
@@ -51,7 +51,7 @@ Texture2DArray::~Texture2DArray()
|
||||
int Texture2DArray::compare(const StateAttribute& sa) const
|
||||
{
|
||||
// check the types are equal and then create the rhs variable
|
||||
// used by the COMPARE_StateAttribute_Paramter macro's below.
|
||||
// used by the COMPARE_StateAttribute_Parameter macro's below.
|
||||
COMPARE_StateAttribute_Types(Texture2DArray,sa)
|
||||
|
||||
bool noImages = true;
|
||||
@@ -91,7 +91,7 @@ int Texture2DArray::compare(const StateAttribute& sa) const
|
||||
int result = compareTexture(rhs);
|
||||
if (result!=0) return result;
|
||||
|
||||
// compare each paramter in turn against the rhs.
|
||||
// compare each parameter in turn against the rhs.
|
||||
COMPARE_StateAttribute_Parameter(_textureWidth)
|
||||
COMPARE_StateAttribute_Parameter(_textureHeight)
|
||||
COMPARE_StateAttribute_Parameter(_textureDepth)
|
||||
@@ -546,9 +546,7 @@ void Texture2DArray::Extensions::setupGLExtensions(unsigned int contextID)
|
||||
_isTexture2DArraySupported = isGLExtensionSupported(contextID,"GL_EXT_texture_array");
|
||||
|
||||
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &_max2DSize);
|
||||
_maxLayerCount = 0;
|
||||
if (_isTexture2DArraySupported)
|
||||
glGetIntegerv(GL_MAX_ARRAY_TEXTURE_LAYERS_EXT, &_maxLayerCount);
|
||||
glGetIntegerv(GL_MAX_ARRAY_TEXTURE_LAYERS_EXT, &_maxLayerCount);
|
||||
|
||||
setGLExtensionFuncPtr(_glTexImage3D, "glTexImage3D","glTexImage3DEXT");
|
||||
setGLExtensionFuncPtr(_glTexSubImage3D, "glTexSubImage3D","glTexSubImage3DEXT");
|
||||
|
||||
@@ -48,7 +48,7 @@ Texture3D::~Texture3D()
|
||||
int Texture3D::compare(const StateAttribute& sa) const
|
||||
{
|
||||
// check the types are equal and then create the rhs variable
|
||||
// used by the COMPARE_StateAttribute_Paramter macro's below.
|
||||
// used by the COMPARE_StateAttribute_Parameter macro's below.
|
||||
COMPARE_StateAttribute_Types(Texture3D,sa)
|
||||
|
||||
if (_image!=rhs._image) // smart pointer comparison.
|
||||
@@ -85,7 +85,7 @@ int Texture3D::compare(const StateAttribute& sa) const
|
||||
int result = compareTexture(rhs);
|
||||
if (result!=0) return result;
|
||||
|
||||
// compare each paramter in turn against the rhs.
|
||||
// compare each parameter in turn against the rhs.
|
||||
COMPARE_StateAttribute_Parameter(_textureWidth)
|
||||
COMPARE_StateAttribute_Parameter(_textureHeight)
|
||||
COMPARE_StateAttribute_Parameter(_textureDepth)
|
||||
|
||||
@@ -76,7 +76,7 @@ TextureRectangle::~TextureRectangle()
|
||||
int TextureRectangle::compare(const StateAttribute& sa) const
|
||||
{
|
||||
// check the types are equal and then create the rhs variable
|
||||
// used by the COMPARE_StateAttribute_Paramter macro's below.
|
||||
// used by the COMPARE_StateAttribute_Parameter macro's below.
|
||||
COMPARE_StateAttribute_Types(TextureRectangle,sa)
|
||||
|
||||
if (_image!=rhs._image) // smart pointer comparison.
|
||||
@@ -113,7 +113,7 @@ int TextureRectangle::compare(const StateAttribute& sa) const
|
||||
int result = compareTexture(rhs);
|
||||
if (result!=0) return result;
|
||||
|
||||
// compare each paramter in turn against the rhs.
|
||||
// compare each parameter in turn against the rhs.
|
||||
COMPARE_StateAttribute_Parameter(_textureWidth)
|
||||
COMPARE_StateAttribute_Parameter(_textureHeight)
|
||||
COMPARE_StateAttribute_Parameter(_subloadCallback)
|
||||
|
||||
@@ -60,7 +60,7 @@ View::~View()
|
||||
_camera->setCullCallback(0);
|
||||
}
|
||||
|
||||
// detatch the cameras from this View to prevent dangling pointers
|
||||
// detach the cameras from this View to prevent dangling pointers
|
||||
for(Slaves::iterator itr = _slaves.begin();
|
||||
itr != _slaves.end();
|
||||
++itr)
|
||||
|
||||
@@ -49,7 +49,7 @@ bool dxtc_pixels::OpenGLSize() const
|
||||
|
||||
bool dxtc_pixels::VFlip() const
|
||||
{
|
||||
// Check that the given dimentions are 2^x, 2^y
|
||||
// Check that the given dimensions are 2^x, 2^y
|
||||
if (! OpenGLSize())
|
||||
return false;
|
||||
|
||||
|
||||
@@ -225,7 +225,7 @@ int DatabasePager::cancel()
|
||||
// result = Thread::cancel();
|
||||
//join();
|
||||
|
||||
// release the frameBlock and _databasePagerThreadBlock incase its holding up thread cancelation.
|
||||
// release the frameBlock and _databasePagerThreadBlock in case its holding up thread cancellation.
|
||||
_databasePagerThreadBlock->release();
|
||||
|
||||
// then wait for the the thread to stop running.
|
||||
@@ -361,7 +361,7 @@ void DatabasePager::requestNodeFile(const std::string& fileName,osg::Group* grou
|
||||
|
||||
if (!foundEntry)
|
||||
{
|
||||
osg::notify(osg::INFO)<<"In DatabasePager::requestNodeFile("<<fileName<<")"<<std::endl;
|
||||
osg::notify(osg::INFO)<<"In DatabasePager::fileRquest("<<fileName<<")"<<std::endl;
|
||||
|
||||
osg::ref_ptr<DatabaseRequest> databaseRequest = new DatabaseRequest;
|
||||
|
||||
@@ -448,7 +448,7 @@ public:
|
||||
{
|
||||
if (stateset)
|
||||
{
|
||||
// search for the existance of any texture object attributes
|
||||
// search for the existence of any texture object attributes
|
||||
bool foundTextureState = false;
|
||||
for(unsigned int i=0;i<stateset->getTextureAttributeList().size();++i)
|
||||
{
|
||||
@@ -725,7 +725,7 @@ void DatabasePager::run()
|
||||
if (firstTime)
|
||||
{
|
||||
// do a yield to get round a peculiar thread hang when testCancel() is called
|
||||
// in certain cirumstances - of which there is no particular pattern.
|
||||
// in certain circumstances - of which there is no particular pattern.
|
||||
YieldCurrentThread();
|
||||
firstTime = false;
|
||||
}
|
||||
@@ -783,7 +783,7 @@ void DatabasePager::addLoadedDataToSceneGraph(double timeStamp)
|
||||
}
|
||||
group->addChild(databaseRequest->_loadedModel.get());
|
||||
|
||||
osg::notify(osg::INFO)<<"merged subgraph "<<databaseRequest->_fileName<<" after "<<databaseRequest->_numOfRequests<<" requests and time="<<(timeStamp-databaseRequest->_timestampFirstRequest)*1000.0<<std::endl;
|
||||
osg::notify(osg::INFO)<<"merged subgraph"<<databaseRequest->_fileName<<" after "<<databaseRequest->_numOfRequests<<" requests and time="<<(timeStamp-databaseRequest->_timestampFirstRequest)*1000.0<<std::endl;
|
||||
|
||||
double timeToMerge = timeStamp-databaseRequest->_timestampFirstRequest;
|
||||
|
||||
@@ -1042,7 +1042,7 @@ void DatabasePager::compileGLObjects(osg::State& state, double& availableTime)
|
||||
|
||||
osg::ref_ptr<DatabaseRequest> databaseRequest;
|
||||
|
||||
// get the first compileable entry.
|
||||
// get the first compilable entry.
|
||||
{
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_dataToCompileListMutex);
|
||||
if (!_dataToCompileList.empty())
|
||||
|
||||
@@ -27,7 +27,7 @@ DotOsgWrapper::DotOsgWrapper(osg::Object* proto,
|
||||
_name = name;
|
||||
|
||||
|
||||
// copy the names in the space deliminated associates input into
|
||||
// copy the names in the space delimited associates input into
|
||||
// a vector of separated names.
|
||||
std::string::size_type start_of_name = associates.find_first_not_of(' ');
|
||||
while (start_of_name!=std::string::npos)
|
||||
|
||||
@@ -151,7 +151,7 @@ Registry* Registry::instance(bool erase)
|
||||
// definition of the Registry
|
||||
Registry::Registry()
|
||||
{
|
||||
// comment out because it was causing problems under OSX - causing it to crash osgconv when constucting ostream in osg::notify().
|
||||
// comment out because it was causing problems under OSX - causing it to crash osgconv when constructing ostream in osg::notify().
|
||||
// notify(INFO) << "Constructing osg::Registry"<<std::endl;
|
||||
|
||||
_createNodeFromImage = false;
|
||||
@@ -250,7 +250,7 @@ Registry::Registry()
|
||||
addFileExtensionAlias("fon", "freetype"); // Windows bitmap fonts
|
||||
addFileExtensionAlias("fnt", "freetype"); // Windows bitmap fonts
|
||||
|
||||
// wont't add type1 and type2 until resolve extension collision with Peformer binary and ascii files.
|
||||
// wont't add type1 and type2 until resolve extension collision with Performer binary and ascii files.
|
||||
// addFileExtensionAlias("pfb", "freetype"); // type1 binary
|
||||
// addFileExtensionAlias("pfa", "freetype"); // type2 ascii
|
||||
|
||||
@@ -281,9 +281,9 @@ void Registry::destruct()
|
||||
// object cache clear needed here to prevent crash in unref() of
|
||||
// the objects it contains when running the TXP plugin.
|
||||
// Not sure why, but perhaps there is is something in a TXP plugin
|
||||
// which is deleted the data before its ref count hits zero, perhaps
|
||||
// which deletes the data before its ref count hits zero, perhaps
|
||||
// even some issue with objects be allocated by a plugin that is
|
||||
// mainted after that plugin is deleted... Robert Osfield, Jan 2004.
|
||||
// maintained after that plugin is deleted... Robert Osfield, Jan 2004.
|
||||
clearObjectCache();
|
||||
clearArchiveCache();
|
||||
|
||||
@@ -756,7 +756,7 @@ osg::Object* Registry::readObjectOfType(const basic_type_wrapper &btw,Input& fr)
|
||||
{
|
||||
// we have a composite name so now strip off the library name
|
||||
// are try to load it, and then retry the readObject to see
|
||||
// if we can recongise the objects.
|
||||
// if we can recognize the objects.
|
||||
|
||||
std::string libraryName = std::string(token,0,posDoubleColon);
|
||||
|
||||
@@ -821,7 +821,7 @@ osg::Object* Registry::readObjectOfType(const basic_type_wrapper &btw,Input& fr)
|
||||
|
||||
// we have a composite name so now strip off the library name
|
||||
// are try to load it, and then retry the find to see
|
||||
// if we can recongise the objects.
|
||||
// if we can recognize the objects.
|
||||
|
||||
std::string libraryName = std::string(token,0,posDoubleColon);
|
||||
|
||||
@@ -883,7 +883,7 @@ osg::Object* Registry::readObject(DotOsgWrapperMap& dowMap,Input& fr)
|
||||
{
|
||||
// we have a composite name so now strip off the library name
|
||||
// are try to load it, and then retry the readObject to see
|
||||
// if we can recongise the objects.
|
||||
// if we can recognize the objects.
|
||||
|
||||
std::string libraryName = std::string(token,0,posDoubleColon);
|
||||
|
||||
@@ -943,7 +943,7 @@ osg::Object* Registry::readObject(DotOsgWrapperMap& dowMap,Input& fr)
|
||||
|
||||
// we have a composite name so now strip off the library name
|
||||
// are try to load it, and then retry the find to see
|
||||
// if we can recongise the objects.
|
||||
// if we can recognize the objects.
|
||||
|
||||
std::string libraryName = std::string(token,0,posDoubleColon);
|
||||
|
||||
@@ -1217,7 +1217,7 @@ bool Registry::writeObject(const osg::Object& obj,Output& fw)
|
||||
|
||||
// we have a composite name so now strip off the library name
|
||||
// are try to load it, and then retry the find to see
|
||||
// if we can recongise the objects.
|
||||
// if we can recognize the objects.
|
||||
|
||||
std::string libraryName = std::string(token,0,posDoubleColon);
|
||||
|
||||
@@ -1564,7 +1564,7 @@ ReaderWriter::ReadResult Registry::openArchiveImplementation(const std::string&
|
||||
|
||||
ReaderWriter::ReadResult result = readImplementation(ReadArchiveFunctor(fileName, status, indexBlockSizeHint, options),false);
|
||||
|
||||
// default to using chaching archive if no options structure provided, but if options are provided use archives
|
||||
// default to using caching archive if no options structure provided, but if options are provided use archives
|
||||
// only if supplied.
|
||||
if (result.validArchive() &&
|
||||
(!options || (options->getObjectCacheHint() & ReaderWriter::Options::CACHE_ARCHIVES)) )
|
||||
@@ -1831,7 +1831,7 @@ void Registry::removeExpiredObjectsInCache(double expiryTime)
|
||||
typedef std::vector<std::string> ObjectsToRemove;
|
||||
ObjectsToRemove objectsToRemove;
|
||||
|
||||
// first collect all the exprired entries in the ObjectToRemove list.
|
||||
// first collect all the expired entries in the ObjectToRemove list.
|
||||
for(ObjectCache::iterator oitr=_objectCache.begin();
|
||||
oitr!=_objectCache.end();
|
||||
++oitr)
|
||||
|
||||
@@ -552,7 +552,7 @@ bool DriveManipulator::calcMovement()
|
||||
#endif
|
||||
|
||||
#if defined(ABOSULTE_PITCH)
|
||||
// abosolute pitch
|
||||
// absolute pitch
|
||||
double dy = _ga_t0->getYnormalized();
|
||||
_pitch = -dy*0.5;
|
||||
#elif defined(INCREMENTAL_PITCH)
|
||||
|
||||
@@ -340,7 +340,7 @@ void TerrainManipulator::computePosition(const osg::Vec3d& eye,const osg::Vec3d&
|
||||
!hitFound && i<2;
|
||||
++i, endPoint = farPosition)
|
||||
{
|
||||
// compute the itersection with the scene.
|
||||
// compute the intersection with the scene.
|
||||
osgUtil::IntersectVisitor iv;
|
||||
iv.setTraversalMask(_intersectTraversalMask);
|
||||
|
||||
@@ -367,7 +367,7 @@ void TerrainManipulator::computePosition(const osg::Vec3d& eye,const osg::Vec3d&
|
||||
}
|
||||
}
|
||||
|
||||
// note LookAt = inv(CF)*inv(RM)*inv(T) which is equivilant to:
|
||||
// note LookAt = inv(CF)*inv(RM)*inv(T) which is equivalent to:
|
||||
// inv(R) = CF*LookAt.
|
||||
|
||||
osg::Matrixd rotation_matrix = osg::Matrixd::lookAt(eye,center,up);
|
||||
@@ -480,7 +480,7 @@ bool TerrainManipulator::calcMovement()
|
||||
|
||||
_center += dv;
|
||||
|
||||
// need to recompute the itersection point along the look vector.
|
||||
// need to recompute the intersection point along the look vector.
|
||||
|
||||
if (_node.valid())
|
||||
{
|
||||
|
||||
@@ -177,7 +177,7 @@ bool getCylinderLineIntersection(const osg::Cylinder& cylinder,
|
||||
osg::Vec3 getLocalEyeDirection(const osg::Vec3& eyeDir, const osg::Matrix& localToWorld)
|
||||
{
|
||||
// To take a normal from world to local you need to transform it by the transpose of the inverse of the
|
||||
// world to local matrix. Pre-multipling is equivalent to doing a post-multiplication of the transpose.
|
||||
// world to local matrix. Pre-multiplying is equivalent to doing a post-multiplication of the transpose.
|
||||
osg::Vec3 localEyeDir = localToWorld * eyeDir;
|
||||
localEyeDir.normalize();
|
||||
return localEyeDir;
|
||||
|
||||
@@ -322,8 +322,8 @@ How to cope with pivot points in 3ds (short version)
|
||||
Objects with pivot points have a position relative to their PP, so they have to undergo this transform:
|
||||
|
||||
invert the mesh matrix, apply this matrix to the object. This puts the object back at the origin
|
||||
Transform the object by the nodes (nnegative) pivot point coords, this puts the PP at the origin
|
||||
Tranform the node by the node matrix, which does the orientation about the pivot point, (and currently) transforms the object back by a translation to the PP.
|
||||
Transform the object by the nodes (negative) pivot point coords, this puts the PP at the origin
|
||||
Transform the node by the node matrix, which does the orientation about the pivot point, (and currently) transforms the object back by a translation to the PP.
|
||||
|
||||
*/
|
||||
osg::Node* ReaderWriter3DS::ReaderObject::processNode(StateSetMap drawStateMap,Lib3dsFile *f,Lib3dsNode *node) {
|
||||
@@ -786,13 +786,13 @@ osg::StateSet* ReaderWriter3DS::ReaderObject::createStateSet(Lib3dsMaterial *mat
|
||||
// so we'll override material back to white.
|
||||
// and no longer require the decal hack below...
|
||||
#if 0
|
||||
// Eric orignal fallback
|
||||
// Eric original fallback
|
||||
osg::Vec4 white(1.0f,1.0f,1.0f,alpha);
|
||||
material->setAmbient(osg::Material::FRONT_AND_BACK,white);
|
||||
material->setDiffuse(osg::Material::FRONT_AND_BACK,white);
|
||||
material->setSpecular(osg::Material::FRONT_AND_BACK,white);
|
||||
#else
|
||||
// try alternative to avoid staturating with white
|
||||
// try alternative to avoid saturating with white
|
||||
// setting white as per OpenGL defaults.
|
||||
material->setAmbient(osg::Material::FRONT_AND_BACK,osg::Vec4(0.2f,0.2f,0.2f,alpha));
|
||||
material->setDiffuse(osg::Material::FRONT_AND_BACK,osg::Vec4(0.8f,0.8f,0.8f,alpha));
|
||||
|
||||
@@ -52,7 +52,7 @@ void DrawArrayLengths::read(DataInputStream* in){
|
||||
((ive::PrimitiveSet*)(prim))->read(in);
|
||||
}
|
||||
else
|
||||
throw Exception("DrawArrayLengths::read(): Could not cast this osg::DrawArrayLengths to an osg::PrimtiveSet.");
|
||||
throw Exception("DrawArrayLengths::read(): Could not cast this osg::DrawArrayLengths to an osg::PrimitiveSet.");
|
||||
|
||||
// Read properties
|
||||
setFirst(in->readInt());
|
||||
|
||||
@@ -48,7 +48,7 @@ void DrawElementsUByte::read(DataInputStream* in){
|
||||
((ive::PrimitiveSet*)(prim))->read(in);
|
||||
}
|
||||
else
|
||||
throw Exception("DrawElementsUByte::read(): Could not cast this osg::DrawElementsUByte to an osg::PrimtiveSet.");
|
||||
throw Exception("DrawElementsUByte::read(): Could not cast this osg::DrawElementsUByte to an osg::PrimitiveSet.");
|
||||
|
||||
// Read array length and its elements.
|
||||
int size = in->readInt();
|
||||
|
||||
@@ -50,7 +50,7 @@ void DrawElementsUInt::read(DataInputStream* in)
|
||||
((ive::PrimitiveSet*)(prim))->read(in);
|
||||
}
|
||||
else
|
||||
throw Exception("DrawElementsUInt::read(): Could not cast this osg::DrawElementsUInt to an osg::PrimtiveSet.");
|
||||
throw Exception("DrawElementsUInt::read(): Could not cast this osg::DrawElementsUInt to an osg::PrimitiveSet.");
|
||||
|
||||
// Read array length and its elements.
|
||||
int size = in->readInt();
|
||||
|
||||
@@ -49,7 +49,7 @@ void DrawElementsUShort::read(DataInputStream* in){
|
||||
((ive::PrimitiveSet*)(prim))->read(in);
|
||||
}
|
||||
else
|
||||
throw Exception("DrawElementsUShort::read(): Could not cast this osg::DrawElementsUShort to an osg::PrimtiveSet.");
|
||||
throw Exception("DrawElementsUShort::read(): Could not cast this osg::DrawElementsUShort to an osg::PrimitiveSet.");
|
||||
|
||||
// Read array length and its elements.
|
||||
int size = in->readInt();
|
||||
|
||||
@@ -83,7 +83,7 @@ void Normals::MakeNormalsVisitor::apply( Geode &geode )
|
||||
_local_coords->push_back( v );
|
||||
_local_coords->push_back( (v + n));
|
||||
}
|
||||
else // BIND_PER_PRIMTIVE_SET, BIND_PER_PRIMTITIV, BIND_PER_VERTEX
|
||||
else // BIND_PER_PRIMITIVE_SET, BIND_PER_PRIMITIVE, BIND_PER_VERTEX
|
||||
{
|
||||
Geometry::PrimitiveSetList& primitiveSets = geom->getPrimitiveSetList();
|
||||
Geometry::PrimitiveSetList::iterator itr;
|
||||
|
||||
@@ -126,7 +126,7 @@ bool View_readLocalData(osg::Object &obj, osgDB::Input &fr)
|
||||
if (!local_itrAdvanced) ++fr;
|
||||
}
|
||||
|
||||
// skip trainling '}'
|
||||
// skip trailing '}'
|
||||
++fr;
|
||||
|
||||
iteratorAdvanced = true;
|
||||
@@ -197,7 +197,7 @@ bool View_readLocalData(osg::Object &obj, osgDB::Input &fr)
|
||||
else ++fr;
|
||||
}
|
||||
|
||||
// skip trainling '}'
|
||||
// skip trailing '}'
|
||||
++fr;
|
||||
|
||||
iteratorAdvanced = true;
|
||||
|
||||
@@ -365,7 +365,7 @@ void ParallelSplitShadowMap::init(){
|
||||
// not yet supported !
|
||||
|
||||
osg::Image* image = new osg::Image;
|
||||
// allocate the image data, noPixels x 1 x 1 with 4 rgba floats - equivilant to a Vec4!
|
||||
// allocate the image data, noPixels x 1 x 1 with 4 rgba floats - equivalent to a Vec4!
|
||||
int noPixels = 1;
|
||||
image->allocateImage(noPixels,1,1,GL_RGBA,GL_FLOAT);
|
||||
image->setInternalTextureFormat(GL_RGBA);
|
||||
@@ -392,7 +392,7 @@ void ParallelSplitShadowMap::init(){
|
||||
{
|
||||
// texture for randomTexture (for smoothing shadow edges)
|
||||
osg::Image* image = new osg::Image;
|
||||
// allocate the image data, noPixels x noPixels x 1 with 4 rgba floats - equivilant to a Vec4!
|
||||
// allocate the image data, noPixels x noPixels x 1 with 4 rgba floats - equivalent to a Vec4!
|
||||
int noPixels = 128;
|
||||
image->allocateImage(noPixels,noPixels,1,GL_RGBA,GL_FLOAT);
|
||||
image->setInternalTextureFormat(GL_RGBA);
|
||||
@@ -493,7 +493,7 @@ void ParallelSplitShadowMap::cull(osgUtil::CullVisitor& cv){
|
||||
unsigned int traversalMask = cv.getTraversalMask();
|
||||
osgUtil::RenderStage* orig_rs = cv.getRenderStage();
|
||||
|
||||
// do traversal of shadow recieving scene which does need to be decorated by the shadow map
|
||||
// do traversal of shadow receiving scene which does need to be decorated by the shadow map
|
||||
for (PSSMShadowSplitTextureMap::iterator it=_PSSMShadowSplitTextureMap.begin();it!=_PSSMShadowSplitTextureMap.end();it++)
|
||||
{
|
||||
PSSMShadowSplitTexture pssmShadowSplitTexture = it->second;
|
||||
@@ -550,7 +550,7 @@ void ParallelSplitShadowMap::cull(osgUtil::CullVisitor& cv){
|
||||
if (selectLight)
|
||||
{
|
||||
|
||||
// do traversal of shadow recieving scene which does need to be decorated by the shadow map
|
||||
// do traversal of shadow receiving scene which does need to be decorated by the shadow map
|
||||
unsigned int iMaxSplit = _PSSMShadowSplitTextureMap.size();
|
||||
|
||||
for (PSSMShadowSplitTextureMap::iterator it=_PSSMShadowSplitTextureMap.begin();it!=_PSSMShadowSplitTextureMap.end();it++)
|
||||
@@ -751,7 +751,7 @@ void ParallelSplitShadowMap::calculateFrustumCorners(
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// compute directional light inital postion;
|
||||
// compute directional light initial position;
|
||||
void ParallelSplitShadowMap::calculateLightInitalPosition(PSSMShadowSplitTexture &pssmShadowSplitTexture,osg::Vec3d *frustumCorners){
|
||||
pssmShadowSplitTexture._frustumSplitCenter = frustumCorners[0];
|
||||
for(int i=1;i<8;i++) {
|
||||
|
||||
@@ -302,7 +302,7 @@ using namespace osgShadow;
|
||||
|
||||
osgUtil::RenderStage* orig_rs = cv.getRenderStage();
|
||||
|
||||
// do traversal of shadow recieving scene which does need to be decorated by the shadow map
|
||||
// do traversal of shadow receiving scene which does need to be decorated by the shadow map
|
||||
{
|
||||
cv.pushStateSet(_stateset.get());
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ void ShadowTexture::cull(osgUtil::CullVisitor& cv)
|
||||
_shadowedScene->osg::Group::traverse(cv);
|
||||
}
|
||||
|
||||
// do traversal of shadow recieving scene which does need to be decorated by the shadow texture
|
||||
// do traversal of shadow receiving scene which does need to be decorated by the shadow texture
|
||||
{
|
||||
cv.pushStateSet(_stateset.get());
|
||||
|
||||
|
||||
@@ -338,7 +338,7 @@ void SoftShadowMap::cull(osgUtil::CullVisitor& cv)
|
||||
|
||||
osgUtil::RenderStage* orig_rs = cv.getRenderStage();
|
||||
|
||||
// do traversal of shadow recieving scene which does need to be decorated by the shadow map
|
||||
// do traversal of shadow receiving scene which does need to be decorated by the shadow map
|
||||
{
|
||||
cv.pushStateSet(_stateset.get());
|
||||
|
||||
|
||||
@@ -263,7 +263,7 @@ ImpostorSprite* Impostor::createImpostorSprite(osgUtil::CullVisitor* cv)
|
||||
// calc texture size for eye, bs.
|
||||
|
||||
// convert the corners of the sprite (in world coords) into their
|
||||
// equivilant window coordinates by using the camera's project method.
|
||||
// equivalent window coordinates by using the camera's project method.
|
||||
const osg::Matrix& MVPW = *(cv->getMVPW());
|
||||
Vec3 c00_win = c00 * MVPW;
|
||||
Vec3 c11_win = c11 * MVPW;
|
||||
|
||||
@@ -73,7 +73,7 @@ osg::Node* DatabaseCacheReadCallback::readNodeFile(const std::string& filename)
|
||||
if (itr->second->referenceCount()==1)
|
||||
{
|
||||
osg::notify(osg::NOTICE)<<"Erasing "<<itr->first<<std::endl;
|
||||
// found a node which is only referenced in the cache so we can disgard it
|
||||
// found a node which is only referenced in the cache so we can discard it
|
||||
// and know that the actual memory will be released.
|
||||
_filenameSceneMap.erase(itr);
|
||||
break;
|
||||
|
||||
@@ -137,7 +137,7 @@ osg::BoundingBox SphereSegment::EdgeLine::computeBound() const
|
||||
|
||||
/**
|
||||
SphereSegment::Side is a Drawable which represents one of the
|
||||
planar areas, at either the minimum or maxium azimuth.
|
||||
planar areas, at either the minimum or maximum azimuth.
|
||||
*/
|
||||
class SphereSegment::Side: public osg::Drawable
|
||||
{
|
||||
@@ -701,7 +701,7 @@ void SphereSegment::Side_drawImplementation(osg::State& /* state */,
|
||||
{
|
||||
start = 0;
|
||||
end = _density;
|
||||
normal = -normal; // Make sure normals orientationint 'outwards'
|
||||
normal = -normal; // Make sure normals oriented 'outwards'
|
||||
}
|
||||
delta = end>start?1:-1;
|
||||
|
||||
@@ -763,7 +763,7 @@ void SphereSegment::Side_drawImplementation(osg::State& /* state */,
|
||||
{
|
||||
start = _density;
|
||||
end = 0;
|
||||
normal = -normal; // Make sure normals orientationint 'outwards'
|
||||
normal = -normal; // Make sure normals orientated 'outwards'
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -982,7 +982,7 @@ void SphereSegment::setAllColors(const osg::Vec4& c)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// SphereSegment interesection code.
|
||||
// SphereSegment intersection code.
|
||||
|
||||
class PolytopeVisitor : public osg::NodeVisitor
|
||||
{
|
||||
@@ -1807,7 +1807,7 @@ namespace SphereSegmentIntersector
|
||||
if (hitEdges.empty()) return lineList;
|
||||
|
||||
// now need to build the toTraverse list for each hit edge,
|
||||
// but should only contain traingles that actually hit the intersection surface
|
||||
// but should only contain triangles that actually hit the intersection surface
|
||||
EdgeList::iterator hitr;
|
||||
for(hitr = hitEdges.begin();
|
||||
hitr != hitEdges.end();
|
||||
@@ -1840,7 +1840,7 @@ namespace SphereSegmentIntersector
|
||||
edge->_toTraverse.push_back(tri);
|
||||
}
|
||||
|
||||
// osg::notify(osg::INFO)<<"Number active edges "<<numActiveEdges<<" num orignal edges "<<numEdges<<std::endl;
|
||||
// osg::notify(osg::INFO)<<"Number active edges "<<numActiveEdges<<" num original edges "<<numEdges<<std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1993,7 +1993,7 @@ namespace SphereSegmentIntersector
|
||||
}
|
||||
|
||||
|
||||
// handle a paird of surfaces that work to enclose a convex region, which means that
|
||||
// handle a paired of surfaces that work to enclose a convex region, which means that
|
||||
// points can be inside either surface to be valid, and be outside both surfaces to be invalid.
|
||||
template<class I>
|
||||
void trim(SphereSegment::LineList& lineList, osg::Vec3Array* sourceLine, I intersector1, I intersector2)
|
||||
@@ -2047,7 +2047,7 @@ namespace SphereSegmentIntersector
|
||||
|
||||
|
||||
// work out which intersector to use by discounting the one that
|
||||
// isn't a plausible candiate.
|
||||
// isn't a plausible candidate.
|
||||
bool possible1 = end1>=0.0;
|
||||
bool possible2 = end2>=0.0;
|
||||
if (possible1 && possible2)
|
||||
@@ -2106,7 +2106,7 @@ namespace SphereSegmentIntersector
|
||||
double start2 = intersector2.distance(start);
|
||||
|
||||
// work out which intersector to use by discounting the one that
|
||||
// isn't a plausible candiate.
|
||||
// isn't a plausible candidate.
|
||||
bool possible1 = start1>=0.0;
|
||||
bool possible2 = start2>=0.0;
|
||||
if (possible1 && possible2)
|
||||
@@ -2310,7 +2310,7 @@ namespace SphereSegmentIntersector
|
||||
SphereSegment::LineList fusedLines;
|
||||
SphereSegment::LineList unfusedLines;
|
||||
|
||||
// first seperat the already fused lines from the unfused ones.
|
||||
// first separate the already fused lines from the unfused ones.
|
||||
for(SphereSegment::LineList::iterator itr = _generatedLines.begin();
|
||||
itr != _generatedLines.end();
|
||||
++itr)
|
||||
@@ -2460,7 +2460,7 @@ namespace SphereSegmentIntersector
|
||||
// add the newline into the unfused for further processing.
|
||||
unfusedLines.push_back(newline);
|
||||
|
||||
osg::notify(osg::INFO)<<"Fusing two seperate lines "<<newline<<std::endl;
|
||||
osg::notify(osg::INFO)<<"Fusing two separate lines "<<newline<<std::endl;
|
||||
}
|
||||
|
||||
_generatedLines = fusedLines;
|
||||
@@ -2526,10 +2526,10 @@ namespace SphereSegmentIntersector
|
||||
edge->_p1Outside = _lowerOutside ? (d1<0.0) : (d1>0.0);
|
||||
edge->_p2Outside = _lowerOutside ? (d2<0.0) : (d2>0.0);
|
||||
|
||||
// if both points inside then disgard
|
||||
// if both points inside then discard
|
||||
if (d1<0.0 && d2<0.0) return false;
|
||||
|
||||
// if both points outside then disgard
|
||||
// if both points outside then discard
|
||||
if (d1>0.0 && d2>0.0) return false;
|
||||
|
||||
if (d1==0.0)
|
||||
@@ -2627,10 +2627,10 @@ namespace SphereSegmentIntersector
|
||||
edge->_p1Outside = _lowerOutside ? (elev1<_elev) : (elev1>_elev);
|
||||
edge->_p2Outside = _lowerOutside ? (elev2<_elev) : (elev2>_elev);
|
||||
|
||||
// if both points inside then disgard
|
||||
// if both points inside then discard
|
||||
if (elev1<_elev && elev2<_elev) return false;
|
||||
|
||||
// if both points outside then disgard
|
||||
// if both points outside then discard
|
||||
if (elev1>_elev && elev2>_elev) return false;
|
||||
|
||||
if (elev1==_elev)
|
||||
@@ -2757,10 +2757,10 @@ namespace SphereSegmentIntersector
|
||||
edge->_p1Outside = radius1>_tif._radius;
|
||||
edge->_p2Outside = radius2>_tif._radius;
|
||||
|
||||
// if both points inside then disgard
|
||||
// if both points inside then discard
|
||||
if (radius1<_tif._radius && radius2<_tif._radius) return false;
|
||||
|
||||
// if both points outside then disgard
|
||||
// if both points outside then discard
|
||||
if (radius1>_tif._radius && radius2>_tif._radius) return false;
|
||||
|
||||
if (radius1==_tif._radius)
|
||||
@@ -2977,19 +2977,19 @@ SphereSegment::LineList SphereSegment::computeIntersection(const osg::Matrixd& m
|
||||
tif._generatedLines.insert(tif._generatedLines.end(), elevMinLines.begin(), elevMinLines.end());
|
||||
tif._generatedLines.insert(tif._generatedLines.end(), elevMaxLines.begin(), elevMaxLines.end());
|
||||
|
||||
osg::notify(osg::INFO)<<"number of seperate lines = "<<tif._generatedLines.size()<<std::endl;
|
||||
osg::notify(osg::INFO)<<"number of separate lines = "<<tif._generatedLines.size()<<std::endl;
|
||||
|
||||
float fuseDistance = 1.0;
|
||||
tif.joinEnds(fuseDistance, true, true);
|
||||
|
||||
osg::notify(osg::INFO)<<"number of seperate lines after fuse = "<<tif._generatedLines.size()<<std::endl;
|
||||
osg::notify(osg::INFO)<<"number of separate lines after fuse = "<<tif._generatedLines.size()<<std::endl;
|
||||
|
||||
float joinDistance = 1e8;
|
||||
tif.joinEnds(joinDistance, false, false);
|
||||
osg::notify(osg::INFO)<<"number of seperate lines after join = "<<tif._generatedLines.size()<<std::endl;
|
||||
osg::notify(osg::INFO)<<"number of separate lines after join = "<<tif._generatedLines.size()<<std::endl;
|
||||
|
||||
tif.joinEnds(joinDistance, false, true);
|
||||
osg::notify(osg::INFO)<<"number of seperate lines after second join = "<<tif._generatedLines.size()<<std::endl;
|
||||
osg::notify(osg::INFO)<<"number of separate lines after second join = "<<tif._generatedLines.size()<<std::endl;
|
||||
|
||||
return tif._generatedLines;
|
||||
}
|
||||
|
||||
@@ -489,7 +489,7 @@ void GeometryTechnique::applyColorLayers()
|
||||
|
||||
if (tf)
|
||||
{
|
||||
// up the precision of hte internal texture format to its maximum.
|
||||
// up the precision of the internal texture format to its maximum.
|
||||
//image->setInternalTextureFormat(GL_LUMINANCE32F_ARB);
|
||||
image->setInternalTextureFormat(GL_LUMINANCE16);
|
||||
}
|
||||
@@ -589,7 +589,7 @@ void GeometryTechnique::applyTransparency()
|
||||
osg::TransferFunction* colorTF = _terrain->getColorTransferFunction(0);
|
||||
|
||||
// if the elevationLayer and colorLayer are the same, and there is colorTF then
|
||||
// simply assing as a texture coordinate.
|
||||
// simply assign as a texture coordinate.
|
||||
if ((elevationLayer==colorLayer) && colorTF) colorLayer = 0;
|
||||
|
||||
bool containsTransparency = false;
|
||||
|
||||
@@ -233,7 +233,7 @@ unsigned int ImageLayer::getModifiedCount() const
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// HieghtFieldLayer
|
||||
// HeightFieldLayer
|
||||
//
|
||||
HeightFieldLayer::HeightFieldLayer():
|
||||
_modifiedCount(0)
|
||||
|
||||
@@ -60,7 +60,7 @@ void TerrainTechnique::cleanSceneGraph()
|
||||
|
||||
void TerrainTechnique::dirty()
|
||||
{
|
||||
// osg::notify(osg::NOTICE)<<className()<<"::dirty(..) not implementated yet"<<std::endl;
|
||||
// osg::notify(osg::NOTICE)<<className()<<"::dirty(..) not implemented yet"<<std::endl;
|
||||
_dirty = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -222,7 +222,7 @@ void DefaultFont::constructGlyphs()
|
||||
|
||||
glyph->setInternalTextureFormat(GL_ALPHA);
|
||||
|
||||
// now populate data arry by converting bitmap into a luminance_alpha map.
|
||||
// now populate data array by converting bitmap into a luminance_alpha map.
|
||||
unsigned char* ptr = rasters[i-32];
|
||||
unsigned char value_on = 255;
|
||||
unsigned char value_off = 0;
|
||||
|
||||
@@ -630,7 +630,8 @@ void Font::GlyphTexture::apply(osg::State& state) const
|
||||
|
||||
if (s_renderer &&
|
||||
(strstr((const char*)s_renderer,"Radeon")!=0) ||
|
||||
(strstr((const char*)s_renderer,"RADEON")!=0))
|
||||
(strstr((const char*)s_renderer,"RADEON")!=0) ||
|
||||
(strstr((const char*)s_renderer,"ALL-IN-WONDER")!=0))
|
||||
{
|
||||
// we're running on an ATI, so need to work around its
|
||||
// subloading bugs by loading all at once.
|
||||
|
||||
@@ -7,7 +7,7 @@ using namespace osgText;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// helper class to make it safer to querry std::string's for encoding.
|
||||
// helper class to make it safer to query std::string's for encoding.
|
||||
//
|
||||
struct look_ahead_iterator
|
||||
{
|
||||
|
||||
@@ -224,7 +224,7 @@ String::iterator Text::computeLastCharacterOnLine(osg::Vec2& cursor, String::ite
|
||||
{
|
||||
--lastValidChar;
|
||||
|
||||
//Substract off glyphs from the cursor position (to correctly center text)
|
||||
// Subtract off glyphs from the cursor position (to correctly center text)
|
||||
Font::Glyph* glyph = activefont->getGlyph(*lastValidChar);
|
||||
if (glyph)
|
||||
{
|
||||
@@ -365,7 +365,7 @@ void Text::computeGlyphRepresentation()
|
||||
switch(_alignment)
|
||||
{
|
||||
// TODO: current behaviour top baselines lined up in both cases - need to implement
|
||||
// top of characters aligment - Question is this neccesary?
|
||||
// top of characters alignment - Question is this necessary?
|
||||
// ... otherwise, nothing to be done for these 6 cases
|
||||
//case LEFT_TOP:
|
||||
//case CENTER_TOP:
|
||||
@@ -1758,6 +1758,7 @@ void Text::renderOnlyForegroundText(osg::State& state, const osg::Vec4& colorMul
|
||||
|
||||
}
|
||||
|
||||
|
||||
void Text::renderWithPolygonOffset(osg::State& state, const osg::Vec4& colorMultiplier) const
|
||||
{
|
||||
unsigned int contextID = state.getContextID();
|
||||
@@ -1818,6 +1819,7 @@ void Text::renderWithPolygonOffset(osg::State& state, const osg::Vec4& colorMult
|
||||
|
||||
glPopAttrib();
|
||||
}
|
||||
|
||||
|
||||
void Text::renderWithNoDepthBuffer(osg::State& state, const osg::Vec4& colorMultiplier) const
|
||||
{
|
||||
|
||||
@@ -180,13 +180,13 @@ void IntersectVisitor::IntersectState::addLineSegment(osg::LineSegment* seg)
|
||||
IntersectVisitor::IntersectVisitor()
|
||||
{
|
||||
|
||||
// overide the default node visitor mode.
|
||||
// override the default node visitor mode.
|
||||
setTraversalMode(NodeVisitor::TRAVERSE_ACTIVE_CHILDREN);
|
||||
|
||||
// Initialize eyepoint to 0,0,0
|
||||
setEyePoint(Vec3(0.0f,0.0f,0.0f));
|
||||
|
||||
setLODSelectionMode(USE_HIGHEST_LEVEL_OF_DETAIL); // orignal IntersectVisitor behavior
|
||||
setLODSelectionMode(USE_HIGHEST_LEVEL_OF_DETAIL); // original IntersectVisitor behavior
|
||||
//setLODSelectionMode(USE_SEGMENT_START_POINT_AS_EYE_POINT_FOR_LOD_LEVEL_SELECTION);
|
||||
|
||||
reset();
|
||||
|
||||
@@ -152,7 +152,7 @@ bool IntersectorGroup::containsIntersections()
|
||||
|
||||
IntersectionVisitor::IntersectionVisitor(Intersector* intersector, ReadCallback* readCallback)
|
||||
{
|
||||
// overide the default node visitor mode.
|
||||
// override the default node visitor mode.
|
||||
setTraversalMode(NodeVisitor::TRAVERSE_ACTIVE_CHILDREN);
|
||||
|
||||
setIntersector(intersector);
|
||||
@@ -162,7 +162,7 @@ IntersectionVisitor::IntersectionVisitor(Intersector* intersector, ReadCallback*
|
||||
|
||||
void IntersectionVisitor::setIntersector(Intersector* intersector)
|
||||
{
|
||||
// keep refernce around just in case intersector is already in the _intersectorStack, otherwsie the clear could delete it.
|
||||
// keep reference around just in case intersector is already in the _intersectorStack, otherwise the clear could delete it.
|
||||
osg::ref_ptr<Intersector> temp = intersector;
|
||||
|
||||
_intersectorStack.clear();
|
||||
@@ -288,7 +288,7 @@ void IntersectionVisitor::apply(osg::Transform& transform)
|
||||
|
||||
popModelMatrix();
|
||||
|
||||
// tidy up an cached cull variabes in the current intersector.
|
||||
// tidy up an cached cull variables in the current intersector.
|
||||
leave();
|
||||
}
|
||||
|
||||
|
||||
@@ -2059,7 +2059,7 @@ bool Optimizer::MergeGeometryVisitor::mergeGeode(osg::Geode& geode)
|
||||
{
|
||||
// now need to clean up primitiveset so it no longer contains the rhs combined primitives.
|
||||
|
||||
// first swap with a empty primtiveSet to empty it completely.
|
||||
// first swap with a empty primitiveSet to empty it completely.
|
||||
osg::Geometry::PrimitiveSetList oldPrimitives;
|
||||
primitives.swap(oldPrimitives);
|
||||
|
||||
@@ -2162,7 +2162,7 @@ bool Optimizer::MergeGeometryVisitor::geometryContainsSharedArrays(osg::Geometry
|
||||
if (tex && tex->referenceCount()>1) return true;
|
||||
}
|
||||
|
||||
// shift the indices of the incomming primitives to account for the pre exisiting geometry.
|
||||
// shift the indices of the incoming primitives to account for the pre existing geometry.
|
||||
for(osg::Geometry::PrimitiveSetList::iterator primItr=geom.getPrimitiveSetList().begin();
|
||||
primItr!=geom.getPrimitiveSetList().end();
|
||||
++primItr)
|
||||
@@ -2387,7 +2387,7 @@ bool Optimizer::MergeGeometryVisitor::mergeGeometry(osg::Geometry& lhs,osg::Geom
|
||||
}
|
||||
|
||||
|
||||
// shift the indices of the incomming primitives to account for the pre exisiting geometry.
|
||||
// shift the indices of the incoming primitives to account for the pre existing geometry.
|
||||
for(osg::Geometry::PrimitiveSetList::iterator primItr=rhs.getPrimitiveSetList().begin();
|
||||
primItr!=rhs.getPrimitiveSetList().end();
|
||||
++primItr)
|
||||
|
||||
@@ -406,7 +406,7 @@ namespace PlaneIntersectorUtils
|
||||
{
|
||||
if (de<0.0)
|
||||
{
|
||||
// osg::notify(osg::NOTICE)<<"Disgard segment "<<std::endl;
|
||||
// osg::notify(osg::NOTICE)<<"Discard segment "<<std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -491,7 +491,7 @@ bool RenderBin::getStats(Statistics& stats) const
|
||||
|
||||
if (dw)
|
||||
{
|
||||
// then tot up the primtive types and no vertices.
|
||||
// then tot up the primitive types and no vertices.
|
||||
dw->accept(stats); // use sub-class to find the stats for each drawable
|
||||
}
|
||||
statsCollected = true;
|
||||
@@ -512,7 +512,7 @@ bool RenderBin::getStats(Statistics& stats) const
|
||||
if (rl->_modelview.get()) stats.addMatrix(); // number of matrices
|
||||
if (dw)
|
||||
{
|
||||
// then tot up the primtive types and no vertices.
|
||||
// then tot up the primitive types and no vertices.
|
||||
dw->accept(stats); // use sub-class to find the stats for each drawable
|
||||
}
|
||||
}
|
||||
|
||||
@@ -221,15 +221,15 @@ void RenderStage::runCameraSetUp(osg::RenderInfo& renderInfo)
|
||||
osg::Camera::RenderTargetImplementation renderTargetImplemntation = _camera->getRenderTargetImplementation();
|
||||
osg::Camera::RenderTargetImplementation renderTargetFallback = _camera->getRenderTargetFallback();
|
||||
|
||||
osg::Camera::BufferAttachmentMap& bufferAttachements = _camera->getBufferAttachmentMap();
|
||||
osg::Camera::BufferAttachmentMap& bufferAttachments = _camera->getBufferAttachmentMap();
|
||||
|
||||
// compute the required dimensions
|
||||
int width = static_cast<int>(_viewport->x() + _viewport->width());
|
||||
int height = static_cast<int>(_viewport->y() + _viewport->height());
|
||||
int depth = 1;
|
||||
osg::Camera::BufferAttachmentMap::iterator itr;
|
||||
for(itr = bufferAttachements.begin();
|
||||
itr != bufferAttachements.end();
|
||||
for(itr = bufferAttachments.begin();
|
||||
itr != bufferAttachments.end();
|
||||
++itr)
|
||||
{
|
||||
width = osg::maximum(width,itr->second.width());
|
||||
@@ -241,8 +241,8 @@ void RenderStage::runCameraSetUp(osg::RenderInfo& renderInfo)
|
||||
// osg::notify(osg::NOTICE)<<"RenderStage::runCameraSetUp computed "<<width<<" "<<height<<" "<<depth<<std::endl;
|
||||
|
||||
// attach an images that need to be copied after the stage is drawn.
|
||||
for(itr = bufferAttachements.begin();
|
||||
itr != bufferAttachements.end();
|
||||
for(itr = bufferAttachments.begin();
|
||||
itr != bufferAttachments.end();
|
||||
++itr)
|
||||
{
|
||||
// if one exist attach image to the RenderStage.
|
||||
@@ -331,8 +331,8 @@ void RenderStage::runCameraSetUp(osg::RenderInfo& renderInfo)
|
||||
bool colorAttached = false;
|
||||
bool depthAttached = false;
|
||||
bool stencilAttached = false;
|
||||
for(osg::Camera::BufferAttachmentMap::iterator itr = bufferAttachements.begin();
|
||||
itr != bufferAttachements.end();
|
||||
for(osg::Camera::BufferAttachmentMap::iterator itr = bufferAttachments.begin();
|
||||
itr != bufferAttachments.end();
|
||||
++itr)
|
||||
{
|
||||
|
||||
@@ -423,7 +423,7 @@ void RenderStage::runCameraSetUp(osg::RenderInfo& renderInfo)
|
||||
renderTargetImplemntation = osg::Camera::PIXEL_BUFFER;
|
||||
}
|
||||
|
||||
// if any of the renderTargetImplementations require a seperate graphics context such as with pbuffer try in turn to
|
||||
// if any of the renderTargetImplementations require a separate graphics context such as with pbuffer try in turn to
|
||||
// set up, but if each level fails then resort to the next level down.
|
||||
while (!getGraphicsContext() &&
|
||||
(renderTargetImplemntation==osg::Camera::PIXEL_BUFFER_RTT ||
|
||||
@@ -454,8 +454,8 @@ void RenderStage::runCameraSetUp(osg::RenderInfo& renderInfo)
|
||||
bool colorAttached = false;
|
||||
bool depthAttached = false;
|
||||
bool stencilAttached = false;
|
||||
for(osg::Camera::BufferAttachmentMap::iterator itr = bufferAttachements.begin();
|
||||
itr != bufferAttachements.end();
|
||||
for(osg::Camera::BufferAttachmentMap::iterator itr = bufferAttachments.begin();
|
||||
itr != bufferAttachments.end();
|
||||
++itr)
|
||||
{
|
||||
|
||||
@@ -585,7 +585,7 @@ void RenderStage::runCameraSetUp(osg::RenderInfo& renderInfo)
|
||||
}
|
||||
else
|
||||
{
|
||||
osg::notify(osg::INFO)<<"Failed to aquire Graphics Context"<<std::endl;
|
||||
osg::notify(osg::INFO)<<"Failed to acquire Graphics Context"<<std::endl;
|
||||
|
||||
if (renderTargetImplemntation==osg::Camera::PIXEL_BUFFER_RTT)
|
||||
{
|
||||
@@ -609,8 +609,8 @@ void RenderStage::runCameraSetUp(osg::RenderInfo& renderInfo)
|
||||
{
|
||||
osg::notify(osg::INFO)<<"Setting up osg::Camera::FRAME_BUFFER"<<std::endl;
|
||||
|
||||
for(osg::Camera::BufferAttachmentMap::iterator itr = bufferAttachements.begin();
|
||||
itr != bufferAttachements.end();
|
||||
for(osg::Camera::BufferAttachmentMap::iterator itr = bufferAttachments.begin();
|
||||
itr != bufferAttachments.end();
|
||||
++itr)
|
||||
{
|
||||
// assign the texture...
|
||||
@@ -860,7 +860,7 @@ void RenderStage::draw(osg::RenderInfo& renderInfo,RenderLeaf*& previous)
|
||||
useThread = useContext->getGraphicsThread();
|
||||
useRenderInfo.setState(useState);
|
||||
|
||||
// syncronize the frame stamps
|
||||
// synchronize the frame stamps
|
||||
useState->setFrameStamp(const_cast<osg::FrameStamp*>(state.getFrameStamp()));
|
||||
|
||||
// map the DynamicObjectCount across to the new window
|
||||
@@ -989,7 +989,7 @@ void RenderStage::drawImplementation(osg::RenderInfo& renderInfo,RenderLeaf*& pr
|
||||
return;
|
||||
}
|
||||
|
||||
// push the stages camera so that drawing code can querry it
|
||||
// push the stages camera so that drawing code can query it
|
||||
if (_camera) renderInfo.pushCamera(_camera);
|
||||
|
||||
// set up the back buffer.
|
||||
|
||||
@@ -356,7 +356,7 @@ public:
|
||||
void addTriangle(Triangle* triangle)
|
||||
{
|
||||
_triangles.insert(triangle);
|
||||
// if (_triangles.size()>2) osg::notify(osg::NOTICE)<<"Warning too many traingles ("<<_triangles.size()<<") sharing edge "<<std::endl;
|
||||
// if (_triangles.size()>2) osg::notify(osg::NOTICE)<<"Warning too many triangles ("<<_triangles.size()<<") sharing edge "<<std::endl;
|
||||
}
|
||||
|
||||
bool isBoundaryEdge() const
|
||||
@@ -464,7 +464,7 @@ public:
|
||||
return osg::Plane(p1->_vertex,p2->_vertex,p3->_vertex);
|
||||
}
|
||||
|
||||
// note return 1 - dotproduct, so that deviation is in the range of 0.0 to 2.0, where 0 is coincendent, 1.0 is 90 degrees, and 2.0 is 180 degrees.
|
||||
// note return 1 - dotproduct, so that deviation is in the range of 0.0 to 2.0, where 0 is coincident, 1.0 is 90 degrees, and 2.0 is 180 degrees.
|
||||
float computeNormalDeviationOnEdgeCollapse(Edge* edge,Point* pNew) const
|
||||
{
|
||||
const Point* p1 = (_p1==edge->_p1 || _p1==edge->_p2) ? pNew : _p1.get();
|
||||
@@ -601,7 +601,7 @@ public:
|
||||
triangle->_e2 = replaceEdgePoint(triangle->_e2.get(),pOriginal,pNew);
|
||||
triangle->_e3 = replaceEdgePoint(triangle->_e3.get(),pOriginal,pNew);
|
||||
|
||||
// remove the triangle form the orignal point, and possibly the point if its the last triangle to use it
|
||||
// remove the triangle form the original point, and possibly the point if its the last triangle to use it
|
||||
removePoint(triangle, pOriginal);
|
||||
|
||||
// add the triangle to that point
|
||||
|
||||
@@ -622,7 +622,7 @@ unsigned int _computeNumberOfPrimitives(const osg::Geometry& geom)
|
||||
default: primLength=0; break; // compute later when =0.
|
||||
}
|
||||
|
||||
// draw primtives by the more flexible "slow" path,
|
||||
// draw primitives by the more flexible "slow" path,
|
||||
// sending OpenGL glBegin/glVertex.../glEnd().
|
||||
switch(primitiveset->getType())
|
||||
{
|
||||
|
||||
@@ -216,7 +216,7 @@ void TriStripVisitor::stripify(Geometry& geom)
|
||||
geom.copyToAndOptimize(geom);
|
||||
}
|
||||
|
||||
// check for the existance of surface primitives
|
||||
// check for the existence of surface primitives
|
||||
unsigned int numSurfacePrimitives = 0;
|
||||
unsigned int numNonSurfacePrimitives = 0;
|
||||
Geometry::PrimitiveSetList& primitives = geom.getPrimitiveSetList();
|
||||
|
||||
@@ -922,7 +922,7 @@ void CompositeViewer::updateTraversal()
|
||||
|
||||
if (scene->getDatabasePager())
|
||||
{
|
||||
// syncronize changes required by the DatabasePager thread to the scene graph
|
||||
// synchronize changes required by the DatabasePager thread to the scene graph
|
||||
scene->getDatabasePager()->updateSceneGraph(_frameStamp->getReferenceTime());
|
||||
}
|
||||
|
||||
|
||||
@@ -254,7 +254,7 @@ void Renderer::cull()
|
||||
|
||||
if (_done || _graphicsThreadDoesCull) return;
|
||||
|
||||
// note we assume lock has already been aquired.
|
||||
// note we assume lock has already been acquired.
|
||||
osgUtil::SceneView* sceneView = _availableQueue.takeFront();
|
||||
|
||||
DEBUG_MESSAGE<<"cull() got SceneView "<<sceneView<<std::endl;
|
||||
@@ -274,7 +274,7 @@ void Renderer::cull()
|
||||
const osg::FrameStamp* fs = state->getFrameStamp();
|
||||
int frameNumber = fs ? fs->getFrameNumber() : 0;
|
||||
|
||||
// do cull taversal
|
||||
// do cull traversal
|
||||
osg::Timer_t beforeCullTick = osg::Timer::instance()->tick();
|
||||
|
||||
sceneView->inheritCullSettings(*(sceneView->getCamera()));
|
||||
@@ -356,15 +356,15 @@ void Renderer::draw()
|
||||
state->getDynamicObjectRenderingCompletedCallback()->completed(state);
|
||||
}
|
||||
|
||||
bool aquireGPUStats = stats && _timerQuerySupported && stats->collectStats("gpu");
|
||||
bool acquireGPUStats = stats && _timerQuerySupported && stats->collectStats("gpu");
|
||||
|
||||
if (aquireGPUStats)
|
||||
if (acquireGPUStats)
|
||||
{
|
||||
checkQuery(stats);
|
||||
}
|
||||
|
||||
// do draw traveral
|
||||
if (aquireGPUStats)
|
||||
// do draw traversal
|
||||
if (acquireGPUStats)
|
||||
{
|
||||
checkQuery(stats);
|
||||
beginQuery(frameNumber);
|
||||
@@ -404,7 +404,7 @@ void Renderer::draw()
|
||||
sceneView->flushDeletedGLObjects(availableTime);
|
||||
}
|
||||
|
||||
if (aquireGPUStats)
|
||||
if (acquireGPUStats)
|
||||
{
|
||||
endQuery();
|
||||
checkQuery(stats);
|
||||
@@ -464,14 +464,14 @@ void Renderer::cull_draw()
|
||||
initialize(state);
|
||||
}
|
||||
|
||||
bool aquireGPUStats = stats && _timerQuerySupported && stats->collectStats("gpu");
|
||||
bool acquireGPUStats = stats && _timerQuerySupported && stats->collectStats("gpu");
|
||||
|
||||
if (aquireGPUStats)
|
||||
if (acquireGPUStats)
|
||||
{
|
||||
checkQuery(stats);
|
||||
}
|
||||
|
||||
// do cull taversal
|
||||
// do cull traversal
|
||||
osg::Timer_t beforeCullTick = osg::Timer::instance()->tick();
|
||||
|
||||
sceneView->inheritCullSettings(*(sceneView->getCamera()));
|
||||
@@ -487,8 +487,8 @@ void Renderer::cull_draw()
|
||||
#endif
|
||||
|
||||
|
||||
// do draw traveral
|
||||
if (aquireGPUStats)
|
||||
// do draw traversal
|
||||
if (acquireGPUStats)
|
||||
{
|
||||
checkQuery(stats);
|
||||
beginQuery(frameNumber);
|
||||
@@ -526,7 +526,7 @@ void Renderer::cull_draw()
|
||||
sceneView->flushDeletedGLObjects(availableTime);
|
||||
}
|
||||
|
||||
if (aquireGPUStats)
|
||||
if (acquireGPUStats)
|
||||
{
|
||||
endQuery();
|
||||
checkQuery(stats);
|
||||
|
||||
@@ -566,7 +566,7 @@ void StatsHandler::setUpScene(osgViewer::ViewerBase* viewer)
|
||||
std::string font("fonts/arial.ttf");
|
||||
|
||||
|
||||
// collect all the relevant camers
|
||||
// collect all the relevant cameras
|
||||
ViewerBase::Cameras validCameras;
|
||||
viewer->getCameras(validCameras);
|
||||
|
||||
@@ -581,7 +581,7 @@ void StatsHandler::setUpScene(osgViewer::ViewerBase* viewer)
|
||||
}
|
||||
}
|
||||
|
||||
// check for querry time support
|
||||
// check for query time support
|
||||
unsigned int numCamrasWithTimerQuerySupport = 0;
|
||||
for(ViewerBase::Cameras::iterator citr = cameras.begin();
|
||||
citr != cameras.end();
|
||||
@@ -598,7 +598,7 @@ void StatsHandler::setUpScene(osgViewer::ViewerBase* viewer)
|
||||
}
|
||||
}
|
||||
|
||||
bool aquireGPUStats = numCamrasWithTimerQuerySupport==cameras.size();
|
||||
bool acquireGPUStats = numCamrasWithTimerQuerySupport==cameras.size();
|
||||
|
||||
float leftPos = 10.0f;
|
||||
float startBlocks = 150.0f;
|
||||
@@ -749,7 +749,7 @@ void StatsHandler::setUpScene(osgViewer::ViewerBase* viewer)
|
||||
citr != cameras.end();
|
||||
++citr)
|
||||
{
|
||||
group->addChild(createCameraStats(font, pos, startBlocks, aquireGPUStats, characterSize, viewer->getStats(), *citr));
|
||||
group->addChild(createCameraStats(font, pos, startBlocks, acquireGPUStats, characterSize, viewer->getStats(), *citr));
|
||||
}
|
||||
|
||||
|
||||
@@ -886,7 +886,7 @@ void StatsHandler::setUpScene(osgViewer::ViewerBase* viewer)
|
||||
#endif
|
||||
}
|
||||
|
||||
osg::Node* StatsHandler::createCameraStats(const std::string& font, osg::Vec3& pos, float startBlocks, bool aquireGPUStats, float characterSize, osg::Stats* viewerStats, osg::Camera* camera)
|
||||
osg::Node* StatsHandler::createCameraStats(const std::string& font, osg::Vec3& pos, float startBlocks, bool acquireGPUStats, float characterSize, osg::Stats* viewerStats, osg::Camera* camera)
|
||||
{
|
||||
osg::Stats* stats = camera->getStats();
|
||||
if (!stats) return 0;
|
||||
@@ -972,7 +972,7 @@ osg::Node* StatsHandler::createCameraStats(const std::string& font, osg::Vec3& p
|
||||
pos.y() -= characterSize*1.5f;
|
||||
}
|
||||
|
||||
if (aquireGPUStats)
|
||||
if (acquireGPUStats)
|
||||
{
|
||||
pos.x() = leftPos;
|
||||
|
||||
@@ -1015,7 +1015,7 @@ osg::Node* StatsHandler::createCameraStats(const std::string& font, osg::Vec3& p
|
||||
|
||||
void StatsHandler::getUsage(osg::ApplicationUsage& usage) const
|
||||
{
|
||||
usage.addKeyboardMouseBinding("s","Onscreen stats.");
|
||||
usage.addKeyboardMouseBinding("s","On screen stats.");
|
||||
usage.addKeyboardMouseBinding("S","Output stats to console.");
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
/** callback class to use to allow matrix manipulators to querry the application for the local coordinate frame.*/
|
||||
/** callback class to use to allow matrix manipulators to query the application for the local coordinate frame.*/
|
||||
class ViewerCoordinateFrameCallback : public osgGA::MatrixManipulator::CoordinateFrameCallback
|
||||
{
|
||||
public:
|
||||
@@ -142,7 +142,7 @@ View::View():
|
||||
// make sure View is safe to reference multi-threaded.
|
||||
setThreadSafeRefUnref(true);
|
||||
|
||||
// need to attach a Renderer to the maaster camera which has been default constructed
|
||||
// need to attach a Renderer to the master camera which has been default constructed
|
||||
getCamera()->setRenderer(createRenderer(getCamera()));
|
||||
|
||||
setEventQueue(new osgGA::EventQueue);
|
||||
@@ -157,7 +157,7 @@ View::View(const osgViewer::View& view, const osg::CopyOp& copyop):
|
||||
{
|
||||
_scene = new Scene;
|
||||
|
||||
// need to attach a Renderer to the maaster camera which has been default constructed
|
||||
// need to attach a Renderer to the master camera which has been default constructed
|
||||
getCamera()->setRenderer(createRenderer(getCamera()));
|
||||
|
||||
setEventQueue(new osgGA::EventQueue);
|
||||
@@ -271,7 +271,7 @@ void View::setSceneData(osg::Node* node)
|
||||
|
||||
if (getSceneData())
|
||||
{
|
||||
// now make sure the scene graph is set up with the correct DataVariance to protect the dyamic elements of
|
||||
// now make sure the scene graph is set up with the correct DataVariance to protect the dynamic elements of
|
||||
// the scene graph from being run in parallel.
|
||||
osgUtil::Optimizer::StaticObjectDetectionVisitor sodv;
|
||||
getSceneData()->accept(sodv);
|
||||
|
||||
@@ -430,7 +430,7 @@ void Viewer::realize()
|
||||
// initialize the global timer to be relative to the current time.
|
||||
osg::Timer::instance()->setStartTick();
|
||||
|
||||
// pass on the start tick to all the associated eventqueues
|
||||
// pass on the start tick to all the associated event queues
|
||||
setStartTick(osg::Timer::instance()->getStartTick());
|
||||
|
||||
setUpThreading();
|
||||
@@ -839,7 +839,7 @@ void Viewer::updateTraversal()
|
||||
|
||||
if (_scene->getDatabasePager())
|
||||
{
|
||||
// syncronize changes required by the DatabasePager thread to the scene graph
|
||||
// synchronize changes required by the DatabasePager thread to the scene graph
|
||||
_scene->getDatabasePager()->updateSceneGraph(_frameStamp->getReferenceTime());
|
||||
}
|
||||
|
||||
|
||||
@@ -459,7 +459,7 @@ bool RecordCameraPathHandler::handle(const osgGA::GUIEventAdapter &ea, osgGA::GU
|
||||
// check for a KeySwitchManipulator, create one if not present, and then add this
|
||||
// to either the newly created one or the existing one. However, the code do that was
|
||||
// EXTREMELY dirty, so I opted for a simpler solution. At a later date, someone may
|
||||
// want to implement the original recomendation (which is in a mailing list reply
|
||||
// want to implement the original recommendation (which is in a mailing list reply
|
||||
// from June 1st by Robert in a thread called "osgviewer Camera Animation (preliminary)".
|
||||
else if (ea.getKey() == _keyEventTogglePlayback)
|
||||
{
|
||||
@@ -483,7 +483,7 @@ bool RecordCameraPathHandler::handle(const osgGA::GUIEventAdapter &ea, osgGA::GU
|
||||
_animPathManipulator->home(ea,aa);
|
||||
|
||||
|
||||
// If we succesfully found our _filename file, set it and keep a copy
|
||||
// If we successfully found our _filename file, set it and keep a copy
|
||||
// around of the original MatrixManipulator to restore later.
|
||||
if (_animPathManipulator.valid() && _animPathManipulator->valid())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user