21 #ifndef RENDERSCENE_H_ 22 #define RENDERSCENE_H_ 25 #include <OgrePlugin.h> 26 #include <OgreOverlaySystem.h> 27 #include <OgreFontManager.h> 31 #define TOSTR(v) Ogre::StringConverter::toString(v) 33 #define THROW_RENDEREX(e) throw RenderException(e.getFullDescription().c_str(),__FILE__,__LINE__) 35 #define MAXNAMECOUNT 1000000 // maximum number to append to names when creating unique names 57 return Ogre::ColourValue(c.
r(), c.
g(), c.
b(), c.
a());
62 return color(c.r, c.g, c.b, c.a);
67 return Ogre::Vector3((
float)v.
x(),(float)v.
y(),(float)v.
z());
72 return vec3(v.x,v.y,v.z);
77 return Ogre::Quaternion((
float)r.
w(),(float)r.
x(),(float)r.
y(),(float)r.
z());
83 rr.
set(r.x,r.y,r.z,r.w);
90 case PT_FRAGMENT :
return Ogre::GPT_FRAGMENT_PROGRAM;
91 case PT_GEOMETRY :
return Ogre::GPT_GEOMETRY_PROGRAM;
93 default :
return Ogre::GPT_VERTEX_PROGRAM;
100 case TF_RGBA32 :
return Ogre::PF_R8G8B8A8;
101 case TF_ARGB32 :
return Ogre::PF_A8R8G8B8;
102 case TF_RGB24 :
return Ogre::PF_R8G8B8;
104 case TF_LUM8 :
return Ogre::PF_L8;
105 case TF_LUM16 :
return Ogre::PF_L16;
107 default :
return Ogre::PF_UNKNOWN;
114 case Ogre::PF_R8G8B8A8 :
return TF_RGBA32;
115 case Ogre::PF_A8R8G8B8 :
return TF_ARGB32;
116 case Ogre::PF_R8G8B8 :
return TF_RGB24;
118 case Ogre::PF_L8 :
return TF_LUM8;
119 case Ogre::PF_L16 :
return TF_LUM16;
128 case FT_POINTLIST :
return Ogre::RenderOperation::OT_POINT_LIST;
129 case FT_LINELIST :
return Ogre::RenderOperation::OT_LINE_LIST;
130 case FT_TRISTRIP :
return Ogre::RenderOperation::OT_TRIANGLE_STRIP;
132 default :
return Ogre::RenderOperation::OT_TRIANGLE_LIST;
139 m[0][0],m[0][1],m[0][2],m[0][3],
140 m[1][0],m[1][1],m[1][2],m[1][3],
141 m[2][0],m[2][1],m[2][2],m[2][3],
142 m[3][0],m[3][1],m[3][2],m[3][3]
160 ResourceOp(std::string parentname=
"") : parentname(parentname) {}
172 virtual void op() { obj->commit(); }
182 virtual void op(){ M::getSingleton().remove(name); }
210 virtual std::string
encode(
const std::string& format)
212 Ogre::DataStreamPtr p= img.encode(format);
213 return p->getAsString();
218 if(getWidth()!=mat->m())
219 throw IndexException(
"Matrix has incorrect number of columns",mat->m(),getWidth());
221 if(getHeight()!=mat->n())
222 throw IndexException(
"Matrix has incorrect number of rows",mat->n(),getHeight());
224 const char* data=(
const char*)getData();
237 Ogre::PixelBox pb=img.getPixelBox();
238 sval w=_min<sval>(getWidth(),mat->m());
239 sval h=_min<sval>(getHeight(),mat->n());
241 for(
sval y=0;y<h;y++)
242 for(
sval x=0;x<w;x++){
243 Ogre::ColourValue cv=pb.getColourAt(x,y,0);
244 mat->setAt((cv.r+cv.g+cv.b)/3.0,y,x);
268 camera(camera), port(port), scene(scene),id(id)
270 rtt_texture.setNull();
277 return camera->getName().c_str();
287 Ogre::Vector4 p = camera->getProjectionMatrix() * camera->getViewMatrix() * Ogre::Vector4(pos.
x(),pos.
y(),pos.
z(),1);
288 real w=port->getActualWidth(),h=port->getActualHeight();
295 Ogre::Matrix4 m=camera->getViewMatrix();
302 Ogre::Matrix4 m=camera->getProjectionMatrix();
309 camera->setPosition(v.
x(), v.
y(), v.
z());
315 camera->lookAt(v.
x(), v.
y(), v.
z());
326 camera->setOrientation(
convert(r));
337 Ogre::Vector3 look=
convert(lookat);
338 Ogre::Vector3 pos=
convert(position);
340 Ogre::Vector3 v1 = look - pos;
341 Ogre::Vector3 v2 = v1.crossProduct(Ogre::Vector3::UNIT_Z);
342 Ogre::Vector3 v3 = v2.crossProduct(v1);
343 Ogre::Quaternion rot = camera->getOrientation().yAxis().getRotationTo(v3);
349 camera->setNearClipDistance(_max<real>(0.0000001,dist));
354 camera->setFarClipDistance(_max<real>(0.0000001,dist));
359 camera->setFOVy(Ogre::Radian(_max<real>(0.00001,rads)));
364 return camera->getFOVy().valueRadians();
369 return camera->getNearClipDistance();
374 return camera->getFarClipDistance();
379 return port->getActualWidth();
384 return port->getActualHeight();
389 return port->getVisibilityMask();
394 port->setBackgroundColour(
convert(c));
395 port->setClearEveryFrame(
true,c.
a()==1.0f ? Ogre::FBT_COLOUR|Ogre::FBT_DEPTH : Ogre::FBT_DEPTH);
400 camera->setAspectRatio(rat);
405 return camera->getAspectRatio();
411 real w=port->getActualWidth(),h=port->getActualHeight();
419 Ogre::Ray r=camera->getCameraToViewportRay(x,y);
426 port->setDimensions(left,top,width,height);
427 if(camera->getProjectionType()==Ogre::PT_ORTHOGRAPHIC)
428 camera->setOrthoWindow((width-left)*port->getActualWidth(),(height-top)*port->getActualHeight());
433 camera->setProjectionType(isOrtho ? Ogre::PT_ORTHOGRAPHIC : Ogre::PT_PERSPECTIVE);
438 camera->setPolygonMode(isWireframe ? Ogre::PM_WIREFRAME : Ogre::PM_SOLID);
444 port->setVisibilityMask(secondary ?
u32(1)<<(
id+1) : 1);
445 port->setSkiesEnabled(!secondary);
450 x-=port->getActualLeft();
451 y-=port->getActualTop();
452 return x>=0 && x<=port->getActualWidth() && y>=0 && y<=port->getActualHeight();
459 renderToTexture(width,height,format,stereoOffset);
460 rtt_texture->getBuffer()->getRenderTarget()->writeContentsToFile(filename);
465 renderToTexture(width,height,format,stereoOffset);
466 Ogre::PixelBox pb(width,height,1,
convert(format),stream);
467 rtt_texture->getBuffer()->blitToMemory(pb);
473 Ogre::PixelFormat pf=
convert(format);
474 Ogre::uchar* buf=OGRE_ALLOC_T(Ogre::uchar, Ogre::PixelUtil::getMemorySize(width,height,1,pf), Ogre::MEMCATEGORY_GENERAL);
476 img.loadDynamicImage(buf,width,height,1,pf);
477 renderToStream((
u8*)buf,width,height,format,stereoOffset);
489 static const sval SPECWIDTH=100;
511 t0p0(mat->getTechnique(0)->getPass(0)),texunit(0),_useTexFiltering(true),
512 _isClampTexAddress(false),specunit(0)
514 mat->setLightingEnabled(
true);
516 t0p0->setDepthWriteEnabled(
true);
517 t0p0->setDepthCheckEnabled(
true);
518 t0p0->setSceneBlending(Ogre::SBT_TRANSPARENT_ALPHA);
519 t0p0->setAlphaRejectSettings(Ogre::CMPF_GREATER,2);
520 t0p0->setTransparentSortingEnabled(
true);
521 t0p0->setTransparentSortingForced(
true);
522 t0p0->setVertexColourTracking(Ogre::TVC_AMBIENT|Ogre::TVC_DIFFUSE);
523 t0p0->setPointSize(2.0);
529 virtual Material* clone(
const char* name)
const;
531 virtual void copyTo(
Material* m,
bool copyTex=
false,
bool copySpec=
false,
bool copyProgs=
false)
const 572 virtual const char*
getName()
const {
return mat->getName().c_str(); }
588 virtual bool usesVertexColor()
const {
return t0p0->getVertexColourTracking() !=Ogre::TVC_NONE; }
589 virtual bool usesLighting()
const {
return t0p0->getLightingEnabled(); }
590 virtual bool usesFlatShading()
const {
return t0p0->getShadingMode() == Ogre::SO_FLAT; }
594 virtual bool isCullBackfaces()
const {
return t0p0->getCullingMode()!=Ogre::CULL_NONE; }
596 virtual const char*
getTexture()
const {
return texunit!=NULL ? texunit->getTextureName().c_str() :
""; }
604 case PT_VERTEX :
return vertname.c_str();
616 t0p0->setPointMinSize(min);
617 t0p0->setPointMaxSize(max);
622 t0p0->setPointSize(size);
627 t0p0->setPointAttenuation(enabled,constant,linear,quad);
633 Ogre::SceneBlendType sbt=Ogre::SBT_TRANSPARENT_ALPHA;
637 sbt=Ogre::SBT_TRANSPARENT_ALPHA;
640 sbt=Ogre::SBT_TRANSPARENT_COLOUR;
646 sbt=Ogre::SBT_MODULATE;
649 sbt=Ogre::SBT_REPLACE;
653 t0p0->setSceneBlending(sbt);
658 t0p0->setPointSpritesEnabled(useSprites);
663 t0p0->setVertexColourTracking(use ? (Ogre::TVC_AMBIENT|Ogre::TVC_DIFFUSE) : Ogre::TVC_NONE);
668 t0p0->setLightingEnabled(use);
673 t0p0->setShadingMode(use ? Ogre::SO_FLAT : Ogre::SO_GOURAUD);
681 _useTexFiltering=use;
683 texunit->setTextureFiltering(use ? Ogre::TFO_BILINEAR :Ogre::TFO_NONE);
688 _isClampTexAddress=use;
690 texunit->setTextureAddressingMode(use ? Ogre::TextureUnitState::TAM_CLAMP : Ogre::TextureUnitState::TAM_WRAP);
695 mat->setCullingMode(cull ? Ogre::CULL_CLOCKWISE : Ogre::CULL_NONE);
698 virtual void setTexture(
const char* name);
700 virtual void useSpectrumTexture(
bool use);
702 virtual void updateSpectrum();
709 Ogre::HighLevelGpuProgramPtr chosenprog=getGPUProgByNumberedName(name);
710 std::string chosenname=(chosenprog.isNull() || chosenprog->hasCompileError())?
"" : chosenprog->getName();
712 if(chosenname.size()==0 && strlen(getGPUProgram(pt))==0)
718 t0p0->setFragmentProgram(chosenname);
722 t0p0->setGeometryProgram(chosenname);
726 t0p0->setVertexProgram(chosenname);
733 Ogre::GpuProgramParametersSharedPtr params=getGPUParameters(pt);
735 if(!params.isNull() && params->_findNamedConstantDefinition(name)!=NULL){
736 params->setNamedConstant(name,val);
745 Ogre::GpuProgramParametersSharedPtr params=getGPUParameters(pt);
747 if(!params.isNull() && params->_findNamedConstantDefinition(name)!=NULL){
748 params->setNamedConstant(name,
float(val));
757 Ogre::GpuProgramParametersSharedPtr params=getGPUParameters(pt);
759 if(!params.isNull() && params->_findNamedConstantDefinition(name)!=NULL){
760 params->setNamedConstant(name,
convert(val));
769 Ogre::GpuProgramParametersSharedPtr params=getGPUParameters(pt);
771 if(!params.isNull() && params->_findNamedConstantDefinition(name)!=NULL){
772 params->setNamedConstant(name,
convert(val));
782 Ogre::HighLevelGpuProgramPtr result;
783 std::string chosenname=
"";
786 std::string namebar=name+
"|";
788 Ogre::HighLevelGpuProgramManager::ResourceMapIterator i=Ogre::HighLevelGpuProgramManager::getSingleton().getResourceIterator();
790 while(i.hasMoreElements()){
791 Ogre::ResourcePtr p=i.getNext();
792 Ogre::HighLevelGpuProgramPtr prog=Ogre::HighLevelGpuProgramManager::getSingleton().getByName(p->getName());
793 std::string pname=prog->getName();
795 if(pname.substr(0,namebar.size())==namebar && (pname.size()>chosenname.size() || pname.compare(name)>0)){
807 Ogre::GpuProgramParametersSharedPtr params;
808 std::string name(getGPUProgram(pt));
812 case PT_FRAGMENT: params=t0p0->getFragmentProgramParameters();
break;
813 case PT_GEOMETRY: params=t0p0->getGeometryProgramParameters();
break;
814 case PT_VERTEX: params=t0p0->getVertexProgramParameters();
break;
818 Ogre::HighLevelGpuProgramPtr chosenprog=getGPUProgByNumberedName(name);
820 if(!chosenprog.isNull() && !chosenprog->hasCompileError()){
821 params=chosenprog->createParameters();
824 case PT_FRAGMENT: t0p0->setFragmentProgramParameters(params);
break;
825 case PT_GEOMETRY: t0p0->setGeometryProgramParameters(params);
break;
826 case PT_VERTEX: t0p0->setVertexProgramParameters(params);
break;
854 virtual void setPoint() { light->setType(Ogre::Light::LT_POINT); }
857 light->setType(Ogre::Light::LT_SPOTLIGHT);
858 light->setSpotlightRange(Ogre::Radian(radsInner),Ogre::Radian(radsOuter),falloff);
863 light->setAttenuation(range,constant,linear,quad);
866 virtual void setVisible(
bool isVisible) { light->setVisible(isVisible); }
868 virtual bool isVisible()
const {
return light->isVisible(); }
933 OgreBaseRenderable(
const std::string& name,
const std::string& matname,Ogre::RenderOperation::OperationType opType,Ogre::SceneManager *mgr)
throw(
RenderException);
944 virtual void createBuffers(
size_t numVerts,
size_t numInds,
bool deferCreate=
false);
947 virtual void destroyBuffers();
949 virtual void _updateRenderQueue(Ogre::RenderQueue* queue) ;
950 virtual void getRenderOperation(Ogre::RenderOperation& op);
951 virtual void _notifyCurrentCamera(Ogre::Camera* cam);
954 Vertex* getLocalVertBuff();
960 void commitBuffers(
bool commitVert=
true,
bool commitInd=
true);
967 void fillDefaultData(
bool deferFill=
false);
972 Ogre::RenderOperation::OperationType
opType()
const {
return _opType; }
975 Ogre::HardwareIndexBufferSharedPtr
getIndexBuffer()
const {
return indexData->indexBuffer;}
977 virtual const Ogre::MaterialPtr&
getMaterial()
const {
return mat; }
983 Ogre::MaterialPtr mattemp=Ogre::MaterialManager::getSingleton().getByName(m);
985 if(mattemp.isNull()){
986 std::ostringstream out;
987 out <<
"Cannot find material " << m;
992 }
catch(Ogre::Exception &e){
997 virtual void getWorldTransforms(Ogre::Matrix4 *xform)
const { *xform = _getParentNodeFullTransform(); }
999 virtual Ogre::Real
getSquaredViewDepth(
const Ogre::Camera* cam)
const {
return mParentNode->getSquaredViewDepth(cam); }
1001 virtual const Ogre::LightList&
getLights()
const {
return queryLights(); }
1012 boundRad=Ogre::Math::boundingRadiusFromAABB(aabb);
1015 virtual void visitRenderables(Ogre::Renderable::Visitor* visitor,
bool debugRenderables) { visitor->visit(
this, 0,
false); }
1027 template<
typename T,
typename F>
1042 virtual const char*
getName() {
return obj->getName().c_str(); }
1051 Ogre::MaterialPtr mat=obj->getMaterial();
1052 return mat.isNull() ?
"" : mat->getName().c_str();
1057 Ogre::AxisAlignedBox aabb=obj->getBoundingBox();
1058 return std::pair<vec3,vec3>(
convert(aabb.getMinimum()),
convert(aabb.getMaximum()));
1070 if(obj && node->numAttachedObjects()==0)
1071 node->attachObject(obj);
1073 node->setVisible(isVisible);
1076 virtual bool isVisible()
const {
return obj && obj->isVisible(); }
1080 return getRenderQueue()==Ogre::RENDER_QUEUE_6;
1085 return getRenderQueue()==Ogre::RENDER_QUEUE_OVERLAY;
1090 setRenderQueue(isTrans ? Ogre::RENDER_QUEUE_6 : Ogre::RENDER_QUEUE_MAIN);
1095 setRenderQueue(isOverlay ? Ogre::RENDER_QUEUE_OVERLAY : Ogre::RENDER_QUEUE_MAIN);
1100 if(queue<=Ogre::RENDER_QUEUE_MAX)
1101 obj->setRenderQueueGroup((Ogre::uint8)queue);
1107 Ogre::Vector3 v=node->getPosition();
1111 v=node->_getDerivedPosition();
1119 Ogre::Vector3 v=node->getScale();
1123 v=node->_getDerivedScale();
1131 Ogre::Quaternion q=node->getOrientation();
1135 q=node->_getDerivedOrientation();
1160 static const size_t SETSIZE=10000;
1189 virtual const char*
getName() {
return name.c_str(); }
1194 for(bbsetlist::iterator i=sets.begin();i!=sets.end();++i)
1195 (*i)->setMaterialName(mat);
1197 catch(Ogre::Exception &e){
1207 Ogre::MaterialPtr mat=sets[0]->getMaterial();
1208 return mat.isNull() ?
"" : mat->getName().c_str();
1216 Ogre::AxisAlignedBox aabb=sets[0]->getBoundingBox();
1217 for(
size_t i=1;i<sets.size();i++)
1218 aabb=aabb.intersection(sets[i]->getBoundingBox());
1220 minv=
convert(aabb.getMinimum());
1221 maxv=
convert(aabb.getMaximum());
1224 return std::pair<vec3,vec3>(minv,maxv);
1227 virtual void commit();
1231 virtual void setVisible(
bool isVisible);
1237 return sets.size()>0 && sets[0]->isVisible();
1242 return getRenderQueue()==Ogre::RENDER_QUEUE_6;
1247 return getRenderQueue()==Ogre::RENDER_QUEUE_OVERLAY;
1252 setRenderQueue(isTrans ? Ogre::RENDER_QUEUE_6 : Ogre::RENDER_QUEUE_MAIN);
1257 setRenderQueue(isOverlay ? Ogre::RENDER_QUEUE_OVERLAY : Ogre::RENDER_QUEUE_MAIN);
1262 if(queue<=Ogre::RENDER_QUEUE_MAX)
1263 for(bbsetlist::iterator i=sets.begin();i!=sets.end();++i)
1264 (*i)->setRenderQueueGroup((Ogre::uint8)queue);
1271 this->height=height;
1272 for(bbsetlist::iterator i=sets.begin();i!=sets.end();++i)
1273 (*i)->setDefaultDimensions(width,height);
1281 for(bbsetlist::iterator i=sets.begin();i!=sets.end();++i)
1282 (*i)->setCommonUpVector(
convert(v));
1288 for(bbsetlist::const_iterator i=sets.begin();i!=sets.end();++i)
1289 count+=(*i)->getNumBillboards();
1296 Ogre::Billboard *b=getBillboard(index);
1302 Ogre::Billboard *b=getBillboard(index);
1308 Ogre::Billboard *b=getBillboard(index);
1318 Ogre::Vector3 v=node->getPosition();
1322 v=node->_getDerivedPosition();
1330 Ogre::Vector3 v=node->getScale();
1334 v=node->_getDerivedScale();
1342 Ogre::Quaternion q=node->getOrientation();
1346 q=node->_getDerivedOrientation();
1356 for(bbsetlist::const_iterator i=sets.begin();index<(
indexval)numBillboards() && i!=sets.end();++i)
1357 if(index<(
indexval)(*i)->getNumBillboards())
1358 return (*i)->getBillboard(index);
1360 index-=(*i)->getNumBillboards();
1392 const Ogre::LightList* pLightList,
bool suppressRenderStateChanges)
1395 setOrientation(orient);
1398 virtual const char*
getName() {
return name.c_str(); }
1403 bbchain->setMaterialName(mat);
1405 catch(Ogre::Exception &e){
1412 Ogre::MaterialPtr mat=bbchain->getMaterial();
1413 return mat.isNull() ?
"" : mat->getName().c_str();
1418 Ogre::AxisAlignedBox aabb=bbchain->getBoundingBox();
1419 return std::pair<vec3,vec3>(
convert(aabb.getMinimum()),
convert(aabb.getMaximum()));
1422 virtual void commit();
1428 node->setVisible(isVisible);
1433 virtual bool isVisible()
const {
return bbchain->isVisible(); }
1437 return getRenderQueue()==Ogre::RENDER_QUEUE_6;
1442 return getRenderQueue()==Ogre::RENDER_QUEUE_OVERLAY;
1447 setRenderQueue(isTrans ? Ogre::RENDER_QUEUE_6 : Ogre::RENDER_QUEUE_MAIN);
1452 setRenderQueue(isOverlay ? Ogre::RENDER_QUEUE_OVERLAY : Ogre::RENDER_QUEUE_MAIN);
1457 if(queue<=Ogre::RENDER_QUEUE_MAX)
1458 bbchain->setRenderQueueGroup((Ogre::uint8)queue);
1469 Ogre::Vector3 v=node->getPosition();
1473 v=node->_getDerivedPosition();
1481 Ogre::Vector3 v=node->getScale();
1485 v=node->_getDerivedScale();
1493 Ogre::Quaternion q=node->getOrientation();
1497 q=node->_getDerivedOrientation();
1505 this->orient=orient;
1515 bbchain->setNumberOfChains(num);
1522 if(ribbon>=numRibbons())
1525 return bbchain->getNumChainElements(ribbon);
1530 bbchain->setMaxChainElements(num);
1535 return bbchain->getMaxChainElements();
1540 bbchain->clearAllChains();
1545 if(ribbon>=numRibbons())
1548 bbchain->clearChain(ribbon);
1553 if(ribbon>=numRibbons())
1556 bbchain->removeChainElement(ribbon);
1561 if(ribbon>=numRibbons())
1562 throw IndexException(
"ribbon",ribbon,numRibbons());
1565 bbchain->addChainElement(ribbon,elem);
1570 if(ribbon>=numRibbons())
1571 throw IndexException(
"ribbon",ribbon,numRibbons());
1573 if(node>=numNodes(ribbon))
1574 throw IndexException(
"node",node,numNodes(ribbon));
1577 bbchain->updateChainElement(ribbon,node,elem);
1582 if(ribbon>=numRibbons())
1585 if(node>=numNodes(ribbon))
1588 const Ogre::BillboardChain::Element &elem=bbchain->getChainElement(ribbon,node);
1589 return convert(elem.position);
1594 if(ribbon>=numRibbons())
1597 if(node>=numNodes(ribbon))
1600 const Ogre::BillboardChain::Element &elem=bbchain->getChainElement(ribbon,node);
1616 planevert interpts[6];
1624 fig(fig),vertices(
"tprverts",0,1,false), indices(
"tprinds",0,3,false)
1631 virtual void _updateRenderQueue(Ogre::RenderQueue* queue);
1632 virtual void _notifyCurrentCamera(Ogre::Camera* cam);
1634 std::pair<sval,planevert*> getPlaneIntersects(
vec3 planept,
vec3 planenorm);
1656 cube[1]=
vec3(maxv.
x(),minv.
y(),minv.
z());
1657 cube[2]=
vec3(minv.
x(),maxv.
y(),minv.
z());
1658 cube[3]=
vec3(maxv.
x(),maxv.
y(),minv.
z());
1659 cube[4]=
vec3(minv.
x(),minv.
y(),maxv.
z());
1660 cube[5]=
vec3(maxv.
x(),minv.
y(),maxv.
z());
1661 cube[6]=
vec3(minv.
x(),maxv.
y(),maxv.
z());
1678 Ogre::RenderSystem* rs=Ogre::Root::getSingleton().getRenderSystem();
1679 rs->convertColourValue(Ogre::ColourValue(1.0f,1.0f,1.0f,alpha),&vertexcol);
1684 setCube(texcube,minv,maxv);
1692 setCube(boundcube,minv,maxv);
1693 bbcenter=(maxv+minv)*0.5;
1694 bbradius=bbmaxv.
distTo(bbcenter);
1696 vec3 minv1=minv, maxv1=maxv;
1698 maxv1.setMaxVals(minv);
1699 obj->setBoundingBox(minv1,maxv1);
1706 vec3 tpos=getTransform().inverse()*pos;
1707 vec3 relpos=lerpXi<vec3>(tpos,bbminv,bbmaxv);
1709 return lerp<vec3,vec3>(relpos,texcube[0],texcube[7]);
1714 return ((getTransform().directional().inverse()*pos)*(bbmaxv-bbminv)).
norm();
1723 planept=tinv*planept;
1730 for(
sval i=0;i<8;i++)
1731 planept=planept+boundcube[i]*coeffs[i];
1734 std::pair<sval,planevert*> result= obj->getPlaneIntersects(planept,planenorm.
norm());
1736 for(
sval i=0;i<result.first;i++){
1737 buffer[i][0]=transformPlane ? result.second[i].first*t : result.second[i].first;
1738 buffer[i][1]=result.second[i].second;
1741 return result.first;
1754 static void fillDefaultGlyphs(glyphmap &map);
1766 if(glyphs.find(name)!=glyphs.end())
1774 glyphmap::iterator i=glyphs.find(name);
1776 if(i!=glyphs.end()){
1777 delete (*i).second.first;
1778 delete (*i).second.second;
1779 delete (*i).second.third;
1792 void set(
float _x,
float _y,
float _z,
float _u,
float _v,
vec3& min,
vec3& max)
1825 OgreBaseRenderable(name,
"BaseWhite",Ogre::RenderOperation::OT_TRIANGLE_LIST ,mgr),isOverlay(false),
1826 updateCols(true), updateGeom(true),valign(
V_TOP), halign(
H_LEFT),textHeight(1.0),spaceWidth(0),
1827 isCameraAligned(true),fontname(
"DefaultFont"),fontobj(NULL),text(
"<NULL>")
1829 movableType=
"MovableText";
1830 internalMatName=name+
"TextMat";
1837 if(!mat.isNull() && mat->getName()==internalMatName)
1838 Ogre::MaterialManager::getSingletonPtr()->remove(mat->getName());
1843 this->isOverlay=isOverlay;
1845 mat->setDepthBias(1.0,1.0);
1846 mat->setDepthCheckEnabled(!isOverlay);
1847 mat->setDepthWriteEnabled(isOverlay);
1851 virtual void setFont(
const std::string& fontname)
throw(
RenderException);
1855 static const short POS_TEX_BINDING=0;
1856 static const short COLOUR_BINDING=1;
1858 void updateColors();
1859 void updateGeometry();
1861 virtual void _notifyCurrentCamera(Ogre::Camera *cam);
1862 virtual void _updateRenderQueue(Ogre::RenderQueue* queue);
1874 virtual void setText(
const std::string& text) { obj->text=text.size() ? text :
"<NULL>"; obj->updateGeom=
true; }
1885 virtual std::string
getText()
const {
return obj->text;}
1886 virtual std::string
getFont()
const {
return obj->fontname;}
1902 obj->setOverlay(isOverlay);
1923 ptr(ptr),filename(filename), scene(scene),buffer(0),sizeBytes(ptr->getBuffer()->getSizeInBytes())
1928 virtual void commit();
1933 buffer=
new u8[sizeBytes];
1935 return Ogre::PixelBox(ptr->getWidth(),ptr->getHeight(),ptr->getDepth(),ptr->getFormat(),buffer);
1939 virtual const char*
getName()
const {
return ptr->getName().c_str(); }
1943 virtual bool hasAlpha()
const {
return ptr->hasAlpha();}
1947 switch(ptr->getFormat()){
1948 case Ogre::PF_R8G8B8A8:
1950 case Ogre::PF_R8G8B8:
1965 virtual void fillBlack();
1966 virtual void fillColor(
color col);
1987 std::ostringstream out;
1988 out << name <<
"|" << createCount;
1989 namecounted=out.str();
1992 ptrProgram=Ogre::HighLevelGpuProgramManager::getSingleton().createProgram(
1993 namecounted, Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
1999 if(ptrProgram.isNull() || ptrProgram->hasCompileError())
2002 const Ogre::GpuProgramParametersSharedPtr& params=ptrProgram->getDefaultParameters();
2004 struct AutoParamPair { Ogre::String name; Ogre::GpuProgramParameters::AutoConstantType type; };
2007 static const AutoParamPair autoparams[] = {
2008 {
"vpWidth", Ogre::GpuProgramParameters::ACT_VIEWPORT_WIDTH },
2009 {
"vpHeight", Ogre::GpuProgramParameters::ACT_VIEWPORT_HEIGHT },
2010 {
"view", Ogre::GpuProgramParameters::ACT_VIEW_MATRIX },
2011 {
"world", Ogre::GpuProgramParameters::ACT_WORLD_MATRIX },
2012 {
"worldView", Ogre::GpuProgramParameters::ACT_WORLDVIEW_MATRIX },
2013 {
"worldViewProj", Ogre::GpuProgramParameters::ACT_WORLDVIEWPROJ_MATRIX },
2014 {
"invWorld", Ogre::GpuProgramParameters::ACT_INVERSE_WORLD_MATRIX },
2015 {
"invProj", Ogre::GpuProgramParameters::ACT_INVERSE_PROJECTION_MATRIX },
2016 {
"invView", Ogre::GpuProgramParameters::ACT_INVERSE_VIEW_MATRIX },
2017 {
"flip", Ogre::GpuProgramParameters::ACT_RENDER_TARGET_FLIPPING },
2018 {
"texSize", Ogre::GpuProgramParameters::ACT_TEXTURE_SIZE },
2019 {
"texSizeInv", Ogre::GpuProgramParameters::ACT_INVERSE_TEXTURE_SIZE },
2025 {
"spotParams", Ogre::GpuProgramParameters::ACT_SPOTLIGHT_PARAMS },
2026 {
"farClipDistance", Ogre::GpuProgramParameters::ACT_FAR_CLIP_DISTANCE },
2027 {
"shadowViewProjMat", Ogre::GpuProgramParameters::ACT_TEXTURE_VIEWPROJ_MATRIX },
2028 {
"camPos", Ogre::GpuProgramParameters::ACT_CAMERA_POSITION },
2029 {
"camPosObjectSpace", Ogre::GpuProgramParameters::ACT_CAMERA_POSITION_OBJECT_SPACE },
2030 {
"depthRange", Ogre::GpuProgramParameters::ACT_SCENE_DEPTH_RANGE }
2033 size_t numParams =
sizeof(autoparams) /
sizeof(AutoParamPair);
2035 for (
size_t i=0; i<numParams; i++)
2036 if (params->_findNamedConstantDefinition(autoparams[i].name))
2037 params->setNamedAutoConstant(autoparams[i].name, autoparams[i].type);
2042 name(name),ptype(ptype), scene(scene),language(language),source(
""),namecounted(
""),createCount(0),hasCompileError(false)
2046 setDefaultProfiles();
2047 setEntryPoint(
"main");
2052 virtual std::string
getName()
const {
return name; }
2057 ptrProgram->setType(
convert(pt));
2064 virtual bool hasError()
const {
return hasCompileError; }
2066 virtual bool setParameter(
const std::string& param,
const std::string& val) {
return ptrProgram->setParameter(param,val); }
2069 Ogre::ParameterList pl=ptrProgram->getParameters();
2071 for(
size_t i=0;i<pl.size();i++)
2072 if(pl[i].name==param)
2073 return ptrProgram->getParameter(pl[i].name);
2082 std::string oldnamecounted=namecounted;
2083 bool isFirstSource=(source==
"");
2084 std::ostringstream out;
2087 Ogre::NameValuePairList nvp;
2089 const Ogre::ParameterList& params=ptrProgram->getParameters();
2090 for(Ogre::ParameterList::const_iterator i=params.begin();i!=params.end();i++){
2091 Ogre::String name=(*i).name;
2092 nvp[name]=ptrProgram->getParameter(name);
2097 ptrProgram->setParameterList(nvp);
2100 ptrProgram->resetCompileError();
2101 ptrProgram->setSource(std::string(code));
2104 if(ptrProgram->hasCompileError()){
2105 hasCompileError=
true;
2109 ptrProgram->unload();
2110 ptrProgram->setSource(source);
2113 out <<
"GPU Program '" << name <<
"' compile failed (" << namecounted <<
")";
2117 hasCompileError=
false;
2120 out <<
"GPU Program '" << name <<
"' compile succeeded (" << namecounted <<
")";
2123 Ogre::LogManager::getSingleton().getDefaultLog()->logMessage(out.str());
2127 Ogre::ResourceManager::ResourceMapIterator i= Ogre::MaterialManager::getSingleton().getResourceIterator();
2129 while(i.hasMoreElements()){
2130 Ogre::ResourcePtr p=i.getNext();
2131 Ogre::MaterialPtr mat=Ogre::MaterialManager::getSingleton().getByName(p->getName());
2132 if(mat->getNumTechniques()==0 || mat->getTechnique(0)->getNumPasses()==0)
2135 Ogre::Pass* pass=mat->getTechnique(0)->getPass(0);
2139 if(pass->getFragmentProgramName()==oldnamecounted)
2140 pass->setFragmentProgram(namecounted,
false);
2143 if(pass->getGeometryProgramName()==oldnamecounted)
2144 pass->setGeometryProgram(namecounted,
false);
2147 if(pass->getVertexProgramName()==oldnamecounted)
2148 pass->setVertexProgram(namecounted,
false);
2153 Ogre::HighLevelGpuProgramManager::getSingleton().remove(oldnamecounted);
2159 std::vector<std::string> result;
2161 Ogre::ParameterList pl=ptrProgram->getParameters();
2163 for(
size_t i=0;i<pl.size();i++)
2164 result.push_back(pl[i].name);
2175 case PT_FRAGMENT : setProfiles(
"fp40 arbfp1 fp30 ps_2_x ps_2_0 ps_1_1");
break;
2176 case PT_GEOMETRY : setProfiles(
"vp40 arbvp1 vp30 vs_2_x vs_2_0 vs_1_1");
break;
2177 case PT_VERTEX : setProfiles(
"vp40 arbvp1 vp30 vs_2_x vs_2_0 vs_1_1");
break;
2197 virtual void paint();
2198 virtual void resize(
int x,
int y,
int width,
int height);
2214 typedef std::map<std::string,Ogre::SceneNode*>
nodemap;
2228 resGroupName=Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME;
2234 virtual void setAmbientLight(
const color & c);
2236 virtual void addResourceDir(
const char* dir);
2238 virtual void initializeResources();
2262 for(std::vector<ResourceOp*>::iterator i=pendingOps.begin();i!=pendingOps.end();++i){
2275 pendingOps.push_back(op);
2283 for(std::vector<ResourceOp*>::iterator i=pendingOps.begin();i!=pendingOps.end();)
2284 if((*i)->parentname==parentname){
2286 pendingOps.erase(i);
2295 Ogre::LogManager::getSingleton().getDefaultLog()->logMessage(msg);
2300 if(background.isNull())
2301 background=Ogre::MaterialManager::getSingleton().create(
"background", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
false);
2303 background->setAmbient(0,0,0);
2304 background->setDiffuse(0,0,0,0);
2305 background->setSelfIllumination(
convert(col));
2307 mgr->setSkyBox(enabled,background->getName(),1000);
2313 Ogre::SceneNode* node=mgr->getRootSceneNode()->createChildSceneNode();
2322 std::string name=fig->
getName();
2323 if(nmap.find(name)!=nmap.end())
2330 virtual void destroyNode(Ogre::SceneNode *node)
throw(Ogre::InternalErrorException)
2333 std::string name=
"";
2334 for(nodemap::iterator
it=nmap.begin();!name.size() &&
it!=nmap.end();++
it)
2335 if(
it->second==node)
2340 mgr->destroySceneNode(node);
2343 OGRE_EXCEPT(Ogre::Exception::ERR_INTERNAL_ERROR,
"Cannot find Figure for node",
"OgreRenderScene::destroyNode");
2347 std::string getUniqueEntityName(
const std::string& name);
2349 std::string getUniqueFigureName(
const std::string& name);
2351 std::string getUniqueResourceName(
const std::string& name, Ogre::ResourceManager& rmgr)
throw(Ogre::InternalErrorException);
color col
Definition: OgreRenderTypes.h:1809
virtual sval getWidth() const
Definition: OgreRenderTypes.h:377
virtual void setDiffuse(const color &c)
Set the diffuse color to emit.
Definition: OgreRenderTypes.h:850
virtual void setSpecular(const color &c)
Sets the specular color, if usesInternalAlpha() returns true the alpha value will be set the internal...
Definition: OgreRenderTypes.h:610
virtual void setOrtho(bool isOrtho)
Definition: OgreRenderTypes.h:431
real x() const
Definition: RenderTypes.h:634
virtual ~OgreImage()
Definition: OgreRenderTypes.h:201
virtual void setEmissive(const color &c)
Definition: RenderTypes.h:2974
virtual mat4 getProjMatrix() const
Definition: OgreRenderTypes.h:300
virtual void useLighting(bool use)
Definition: OgreRenderTypes.h:666
virtual void setMaterial(const std::string &m)
Definition: OgreRenderTypes.h:980
Definition: RenderTypes.h:476
virtual ~OgreTextFigure()
Definition: OgreRenderTypes.h:1872
virtual const Ogre::String & getMovableType() const
Definition: OgreRenderTypes.h:1003
virtual color getAmbient() const
Definition: OgreRenderTypes.h:574
real spaceWidth
Definition: OgreRenderTypes.h:1813
virtual void setDiffuse(const color &c)
Sets the diffuse color, if usesInternalAlpha() returns true the alpha value will be set the internal ...
Definition: RenderTypes.h:2971
virtual real getFarClip() const
Definition: OgreRenderTypes.h:372
Definition: RenderTypes.h:475
virtual void useDepthCheck(bool use)
Definition: RenderTypes.h:2989
Simple mutex type allowing locking and attempted locking with timeout.
Definition: RenderTypes.h:368
bool cameraMoved
Definition: OgreRenderTypes.h:1612
virtual bool hasError() const
Returns true if the source code given for the program has failed to parse.
Definition: OgreRenderTypes.h:2064
virtual color getSpecular() const
Definition: OgreRenderTypes.h:576
virtual void destroyNode(Ogre::SceneNode *node)
Definition: OgreRenderTypes.h:2330
virtual bool isVisible() const
Returns true if this light is actively illuminating the scene.
Definition: OgreRenderTypes.h:868
virtual bool isPointInViewport(int x, int y) const
Definition: OgreRenderTypes.h:448
Ogre::SceneNode * node
Definition: OgreRenderTypes.h:190
Mutex sceneMutex
Definition: OgreRenderTypes.h:2224
Ogre::RGBA vertexcol
Definition: OgreRenderTypes.h:1650
virtual void setPointAttenuation(bool enabled, real constant=0.0f, real linear=1.0f, real quad=0.0f)
Sets point attenuation, the given real values are constants the attenuation equation.
Definition: OgreRenderTypes.h:625
Definition: RenderTypes.h:444
virtual void setGPUProgram(const std::string &name, ProgramType pt)
Definition: RenderTypes.h:3000
virtual void setVisible(bool isVisible)
Set whether this light is currently illuminating or not.
Definition: OgreRenderTypes.h:866
Definition: RenderTypes.h:4101
virtual void setTexture(const char *name)
Definition: RenderTypes.h:2995
virtual bool usesVertexColor() const
Definition: OgreRenderTypes.h:588
OgreRenderScene * scene
Definition: OgreRenderTypes.h:260
virtual u32 getVisibilityMask() const
Definition: OgreRenderTypes.h:387
virtual std::string getLanguage() const
Definition: OgreRenderTypes.h:2062
Definition: RenderTypes.h:494
Represents a texture loaded into memory and available to the graphis hardware.
Definition: RenderTypes.h:2307
virtual void setColor(const color &col)
Definition: OgreRenderTypes.h:1876
void basis_Hex1NL(real xi0, real xi1, real xi2, real *coeffs)
Linear Nodal Lagrange hexahedron basis function, fills in `coeffs' for the given xi value...
Definition: RenderTypes.cpp:308
virtual ~TextureVolumeRenderable()
Definition: OgreRenderTypes.h:1629
virtual void setPointAttenuation(bool enabled, real constant=0.0f, real linear=1.0f, real quad=0.0f)
Sets point attenuation, the given real values are constants the attenuation equation.
Definition: RenderTypes.h:2983
virtual bool isCameraAligned() const
Definition: OgreRenderTypes.h:1894
virtual sval getWidth() const
Get the image width.
Definition: OgreRenderTypes.h:204
virtual u8 * getData()
Get a pointer to the internal data buffer.
Definition: OgreRenderTypes.h:209
virtual void cullBackfaces(bool cull)
Definition: OgreRenderTypes.h:693
virtual const char * getName() const
Definition: OgreRenderTypes.h:572
std::string internalMatName
Definition: OgreRenderTypes.h:1808
Definition: RenderTypes.h:480
virtual Ogre::SceneNode * createNode(const std::string &name)
Definition: OgreRenderTypes.h:2310
virtual real getVertFOV() const
Definition: OgreRenderTypes.h:362
Definition: RenderTypes.h:1381
virtual mat4 getViewMatrix() const
Definition: OgreRenderTypes.h:293
virtual void fillColorMatrix(ColorMatrix *mat)
Transfer the image data into the given matrix.
Definition: OgreRenderTypes.h:250
Definition: RenderTypes.h:1432
float z
Definition: OgreRenderTypes.h:1790
OgreRenderScene * scene
Definition: OgreRenderTypes.h:191
virtual ~OgreBaseRenderable()
Definition: OgreRenderTypes.h:935
vec3 bbmaxv
Definition: OgreRenderTypes.h:1643
u32 sval
Definition: RenderTypes.h:107
Ogre::OverlaySystem * overlay
Definition: OgreRenderTypes.h:2188
virtual void renderToStream(void *stream, sval width, sval height, TextureFormat format=TF_RGB24, real stereoOffset=0.0)
Create an offscreen texture, render to it, then blit the contents to `stream', which must be large en...
Definition: OgreRenderTypes.h:463
virtual color getEmissive() const
Definition: OgreRenderTypes.h:577
virtual void setDiffuse(const color &c)
Sets the diffuse color, if usesInternalAlpha() returns true the alpha value will be set the internal ...
Definition: OgreRenderTypes.h:609
Definition: RenderTypes.h:275
virtual real getNearClip() const
Definition: OgreRenderTypes.h:367
def loadImageFile(filename, imgobj, pos=vec3(), rot=rotator(), spacing=(1.0, 1.0))
Definition: ImageAlgorithms.py:161
DestroySceneNodeOp(Ogre::MovableObject *obj, Ogre::SceneNode *node, OgreRenderScene *scene)
Definition: OgreRenderTypes.h:192
virtual void setVAlign(VAlignType align)
Definition: OgreRenderTypes.h:1878
float b() const
Definition: RenderTypes.h:562
FigureType
Defines the figure types which the Figure class and subclasses are capable of representing.
Definition: RenderTypes.h:441
OgreRenderScene * scene
The root scene which renders this object.
Definition: OgreRenderTypes.h:1914
OgreLight(Ogre::Light *light, OgreRenderScene *scene)
Definition: OgreRenderTypes.h:843
virtual void setSourceCode(const std::string &code)
Set the source code for the program, this must be done in the main thread.
Definition: OgreRenderTypes.h:2080
BlendMode bm
Definition: OgreRenderTypes.h:498
size_t _numIndices
Definition: OgreRenderTypes.h:913
virtual void setPointSize(real min, real max)
Set the minimum and maximum point size for attenuated points.
Definition: RenderTypes.h:2979
virtual void setPointSizeAbs(real size)
Set the absolute point size.
Definition: RenderTypes.h:2981
#define critical(m)
Definition: RenderTypes.h:436
virtual void setEmissive(const color &c)
Definition: OgreRenderTypes.h:611
Definition: OgreRenderTypes.h:1910
void setDefaultProfiles()
Definition: OgreRenderTypes.h:2169
virtual color getColor() const
Definition: OgreRenderTypes.h:1887
virtual ~OgreRenderScene()
Definition: OgreRenderTypes.h:2231
Definition: OgreRenderTypes.h:155
VAlignType valign
Definition: OgreRenderTypes.h:1810
virtual sval getHeight() const
Get the image height.
Definition: OgreRenderTypes.h:205
Definition: OgreRenderTypes.h:196
Definition: OgreRenderTypes.h:1971
Ogre::MaterialPtr mat
Definition: OgreRenderTypes.h:920
Definition: RenderTypes.h:464
virtual void getWorldTransforms(Ogre::Matrix4 *xform) const
Definition: OgreRenderTypes.h:997
Definition: RenderTypes.h:3772
Definition: RenderTypes.h:501
Definition: OgreRenderTypes.h:1637
real y() const
Definition: RenderTypes.h:635
virtual VAlignType getVAlign() const
Definition: OgreRenderTypes.h:1889
OgreGPUProgram(const std::string &name, ProgramType ptype, OgreRenderScene *scene, const std::string &language="cg")
Definition: OgreRenderTypes.h:2041
virtual bool setGPUParamReal(ProgramType pt, const std::string &name, real val)
Definition: OgreRenderTypes.h:743
bool isZero() const
Returns true if the length of the vector is within dEPSILON of 0.
Definition: RenderTypes.h:698
Represents a Red-Green-Blue-Alpha color with float channels. Note the lack of virtual members implies...
Definition: RenderTypes.h:529
TextureFormat
Definition: RenderTypes.h:473
size_t numVertices() const
Definition: OgreRenderTypes.h:969
virtual void setPointSize(real min, real max)
Set the minimum and maximum point size for attenuated points.
Definition: OgreRenderTypes.h:614
virtual void copyTo(Material *m, bool copyTex=false, bool copySpec=false, bool copyProgs=false) const
Copy this material's settings to `mat'.
Definition: OgreRenderTypes.h:531
virtual void setAttenuation(real range, real constant=0.0f, real linear=1.0f, real quad=0.0f)
Set the attenuation values for spot and point lights.
Definition: OgreRenderTypes.h:861
std::string filename
Definition: OgreRenderTypes.h:1916
Ogre::Root * root
Definition: OgreRenderTypes.h:2206
Ogre::Viewport * port
Definition: OgreRenderTypes.h:259
Fixed definition of a vertex used in the renderer.
Definition: OgreRenderTypes.h:883
std::string vertname
Definition: OgreRenderTypes.h:504
Definition: OgreRenderTypes.h:879
virtual void setDirectional()
Make this a directional light, illuminating all scene objects in the set direction.
Definition: OgreRenderTypes.h:853
virtual std::string getText() const
Definition: OgreRenderTypes.h:1885
void createProgram()
Definition: OgreRenderTypes.h:1985
Ogre::TextureUnitState * texunit
Definition: OgreRenderTypes.h:497
virtual const Ogre::AxisAlignedBox & getBoundingBox() const
Definition: OgreRenderTypes.h:1005
Ogre::Pass * t0p0
Definition: OgreRenderTypes.h:496
size_t sizeBytes
Definition: OgreRenderTypes.h:1919
virtual std::string encode(const std::string &format)
Encode the image data as the byte stream for a file, the format of which is given by `format' (eg...
Definition: OgreRenderTypes.h:210
Definition: RenderTypes.cpp:23
RemoveResourceOp(const std::string &name)
Definition: OgreRenderTypes.h:181
Definition: RenderTypes.h:465
virtual void setOverlay(bool isOverlay)
Definition: OgreRenderTypes.h:1841
virtual bool hasAlpha() const
Definition: OgreRenderTypes.h:1943
std::map< std::string, Ogre::SceneNode * > nodemap
Definition: OgreRenderTypes.h:2214
void setCameraVisibility(const Camera *cam, Ogre::MovableObject *obj, bool isVisible, OgreRenderScene *scene)
Set the visibility of `obj' to be `isVisible' for the camera `cam'. If `cam' is NULL then `obj' becom...
Definition: OgreRenderTypes.cpp:60
Ogre::Camera * camera
Definition: OgreRenderTypes.h:258
float a() const
Definition: RenderTypes.h:563
virtual sval getHeight() const
Definition: OgreRenderTypes.h:1941
bool hasCompileError
Definition: OgreRenderTypes.h:1983
vec3 bbminv
Definition: OgreRenderTypes.h:1642
Definition: RenderTypes.h:477
OgreTexture(Ogre::TexturePtr ptr, const char *filename, OgreRenderScene *scene)
Definition: OgreRenderTypes.h:1922
virtual void setLookAt(const vec3 &v)
Definition: OgreRenderTypes.h:313
virtual void setZUp()
Definition: OgreRenderTypes.h:333
virtual void setPointSizeAbs(real size)
Set the absolute point size.
Definition: OgreRenderTypes.h:620
Definition: OgreRenderTypes.cpp:41
virtual Image * renderToImage(sval width, sval height, TextureFormat format=TF_RGB24, real stereoOffset=0.0)
Create an offscreen texture, render to it, then blit the contents to the returned Image object...
Definition: OgreRenderTypes.h:470
size_t numIndices() const
Definition: OgreRenderTypes.h:970
Definition: RenderTypes.h:872
Config * config
Definition: OgreRenderTypes.h:2209
virtual void setOverlay(bool isOverlay)
Set the overlay state of the figure, this doesn't actually change data but affects how the renderer t...
Definition: OgreRenderTypes.h:1899
virtual void setPosition(const vec3 &v)
Definition: OgreRenderTypes.h:307
virtual void setVertFOV(real rads)
Definition: OgreRenderTypes.h:357
Ogre::RenderOperation::OperationType _opType
Definition: OgreRenderTypes.h:908
Definition: RenderTypes.h:487
virtual const Ogre::LightList & getLights() const
Definition: OgreRenderTypes.h:1001
std::pair< vec3, vec3 > planevert
Definition: OgreRenderTypes.h:42
float g() const
Definition: RenderTypes.h:561
virtual Ogre::SceneNode * getNode(Figure *fig)
Definition: OgreRenderTypes.h:2319
CommitOp(T *obj)
Definition: OgreRenderTypes.h:171
virtual ~OgreTextureVolumeFigure()
Definition: OgreRenderTypes.h:1669
Represents a GPU program (vertex/fragment/geometry shader)
Definition: RenderTypes.h:2327
virtual sval getNumPlanes() const
Definition: OgreRenderTypes.h:1672
virtual bool setGPUParamVec3(ProgramType pt, const std::string &name, vec3 val)
Definition: OgreRenderTypes.h:755
virtual bool usesPointAttenuation() const
Definition: OgreRenderTypes.h:584
VAlignType
Definition: RenderTypes.h:499
virtual void op()
Before each render operation, this method is called for every ResourceOp object the renderer stores...
Definition: OgreRenderTypes.h:182
virtual void fillRealMatrix(RealMatrix *mat)
Transfer the image data into the given matrix.
Definition: OgreRenderTypes.h:216
virtual bool usesDepthWrite() const
Definition: OgreRenderTypes.h:592
virtual void setViewport(real left=0.0f, real top=0.0f, real width=1.0f, real height=1.0f)
Definition: OgreRenderTypes.h:424
void setCube(vec3 *cube, const vec3 &minv, const vec3 &maxv)
Definition: OgreRenderTypes.h:1652
unsigned int u32
Definition: RenderTypes.h:103
std::string fragname
Definition: OgreRenderTypes.h:502
Destroys the given object/node pair by detaching the node and detroying it, then deleting the object...
Definition: OgreRenderTypes.h:186
Definition: RenderTypes.h:478
virtual void useFlatShading(bool use)
Definition: RenderTypes.h:2988
virtual void setType(ProgramType pt)
Definition: OgreRenderTypes.h:2054
virtual void setHAlign(HAlignType align)
Definition: OgreRenderTypes.h:1879
Ogre::TextureUnitState * specunit
Definition: OgreRenderTypes.h:507
bool updateCols
Definition: OgreRenderTypes.h:1815
u32 cameraCount
Counts how many cameras have been created and assigns a unique number to each (up to 31) ...
Definition: OgreRenderTypes.h:2219
OgreCamera(Ogre::Camera *camera, Ogre::Viewport *port, OgreRenderScene *scene, u32 id)
Definition: OgreRenderTypes.h:267
virtual void op()
Before each render operation, this method is called for every ResourceOp object the renderer stores...
Definition: OgreRenderTypes.h:172
Definition: OgreRenderTypes.h:487
Definition: RenderTypes.h:1606
virtual void clampTexAddress(bool use)
Definition: OgreRenderTypes.h:686
virtual void useVertexColor(bool use)
Definition: RenderTypes.h:2986
Ogre::VertexData * vertexData
Definition: OgreRenderTypes.h:903
Definition: OgreRenderTypes.h:2203
OgreImage(const Ogre::Image &i)
Definition: OgreRenderTypes.h:200
Definition: RenderTypes.h:993
real fround(real r)
Definition: RenderTypes.h:190
virtual void setAlpha(real alpha)
Set the internal alpha value, resetting the diffuse and specular values expected a subtype to set the...
Definition: RenderTypes.h:2919
real distTo(const vec3 &v) const
Return the distance from `this' to `v'.
Definition: RenderTypes.h:671
Ogre::RenderWindow * win
Definition: OgreRenderTypes.h:2187
virtual real getShininess() const
Definition: OgreRenderTypes.h:579
TextureVolumeRenderable(const std::string &name, const std::string &matname, OgreTextureVolumeFigure *fig, Ogre::SceneManager *mgr)
Definition: OgreRenderTypes.h:1622
virtual BlendMode getBlendMode() const
Definition: OgreRenderTypes.h:586
bool depthSorting
Definition: OgreRenderTypes.h:928
Vertex * localVertBuff
Vertex buffer in main memory used to stage data before being committed to video memory.
Definition: OgreRenderTypes.h:916
Ogre::HardwareVertexBufferSharedPtr getVertexBuffer() const
Definition: OgreRenderTypes.h:974
virtual void setCameraAlign(bool align)
Definition: OgreRenderTypes.h:1883
virtual void setMaterial(const Ogre::MaterialPtr &m)
Definition: OgreRenderTypes.h:979
virtual void usePointSprites(bool useSprites)
Definition: RenderTypes.h:2994
void setAutoConstants()
Definition: OgreRenderTypes.h:1997
std::string resGroupName
Definition: OgreRenderTypes.h:2210
virtual void setBoundingBox(vec3 minv, vec3 maxv)
Definition: OgreRenderTypes.h:1009
virtual vec3 getLookAt() const
Definition: OgreRenderTypes.h:281
bool _isClampTexAddress
Definition: OgreRenderTypes.h:500
virtual void useInternalAlpha(bool val)
Set whether to use the internal alpha value or use those specified in the diffuse and specular color ...
Definition: RenderTypes.h:2930
virtual void useTexFiltering(bool use)
Definition: RenderTypes.h:2991
virtual void setDirection(vec3 &v)
Set the direction to emit light at, only meaningful for directional and spot lights.
Definition: OgreRenderTypes.h:849
Definition: RenderTypes.h:4199
virtual real getPointSizeMax() const
Definition: OgreRenderTypes.h:581
Definition: RenderTypes.h:461
u32 indexval
Definition: RenderTypes.h:110
virtual const char * getGPUProgram(ProgramType pt) const
Definition: OgreRenderTypes.h:598
Definition: RenderTypes.h:489
Definition: RenderTypes.h:446
virtual void setAmbient(const color &c)
Definition: OgreRenderTypes.h:608
Definition: RenderTypes.h:445
real w() const
Definition: RenderTypes.h:1146
Ogre::GpuProgramParametersSharedPtr getGPUParameters(ProgramType pt)
Definition: OgreRenderTypes.h:805
void setNodeFigParent(Ogre::SceneNode *node, Figure *fig, OgreRenderScene *scene)
Set `node' to have the same parent node as that of `fig'.
Definition: OgreRenderTypes.cpp:47
rotator lastCamRot
Definition: OgreRenderTypes.h:1611
virtual vec3 getTexXiPos(vec3 pos) const
Definition: OgreRenderTypes.h:1704
real bbradius
Definition: OgreRenderTypes.h:1645
Ogre::HighLevelGpuProgramPtr ptrProgram
Definition: OgreRenderTypes.h:1975
Ogre::ColourValue convert(const color &c)
Definition: OgreRenderTypes.h:55
std::vector< ResourceOp * > pendingOps
Definition: OgreRenderTypes.h:2223
virtual real getAspectRatio() const
Get the aspect ratio of the notional box this camera sees through and shall render to a target...
Definition: OgreRenderTypes.h:403
Definition: RenderTypes.h:2898
std::string namecounted
Definition: OgreRenderTypes.h:1978
virtual void useFlatShading(bool use)
Definition: OgreRenderTypes.h:671
real textHeight
Definition: OgreRenderTypes.h:1812
Definition: OgreRenderTypes.h:1868
Figure * parent
Parent figure this renderable is used by.
Definition: OgreRenderTypes.h:894
Ogre::TexturePtr spectex
Definition: OgreRenderTypes.h:506
unsigned long long u64
Definition: RenderTypes.h:104
void deleteLocalVertBuff()
Definition: OgreRenderTypes.h:964
OgreRenderScene(OgreRenderAdapter *adapt)
Definition: OgreRenderTypes.h:2226
virtual color getDiffuse() const
Definition: OgreRenderTypes.h:575
virtual bool isCullBackfaces() const
Definition: OgreRenderTypes.h:594
T * obj
Definition: OgreRenderTypes.h:170
virtual void setSpecular(const color &c)
Sets the specular color, if usesInternalAlpha() returns true the alpha value will be set the internal...
Definition: RenderTypes.h:2973
Ogre::MaterialPtr background
Definition: OgreRenderTypes.h:2212
virtual void op()
Before each render operation, this method is called for every ResourceOp object the renderer stores...
Definition: OgreRenderTypes.h:162
virtual real getPointSizeAbs() const
Definition: OgreRenderTypes.h:582
OgreRenderScene * scene
The root scene which renders this object.
Definition: OgreRenderTypes.h:493
Definition: RenderTypes.h:443
ProgramType ptype
Definition: OgreRenderTypes.h:1981
virtual void clampTexAddress(bool use)
Definition: RenderTypes.h:2992
Definition: RenderTypes.h:488
virtual HAlignType getHAlign() const
Definition: OgreRenderTypes.h:1890
bool _useTexFiltering
Definition: OgreRenderTypes.h:499
virtual ~TextRenderable()
Definition: OgreRenderTypes.h:1835
virtual void setFont(const std::string &fontname)
Definition: OgreRenderTypes.h:1875
Definition: RenderTypes.h:481
bool isCameraAligned
Definition: OgreRenderTypes.h:1818
std::string name
Definition: OgreRenderTypes.h:1977
virtual real getTextHeight() const
Definition: OgreRenderTypes.h:1891
virtual void logMessage(const char *msg)
Log a message to the renderer log file.
Definition: OgreRenderTypes.h:2293
virtual vec3 getTexXiDir(vec3 pos) const
Definition: OgreRenderTypes.h:1712
vec3 position
Definition: OgreRenderTypes.h:265
The op() method calls the method commit() with the given object `obj' as the receiver.
Definition: OgreRenderTypes.h:167
TextRenderable(const std::string &name, Ogre::SceneManager *mgr)
Definition: OgreRenderTypes.h:1824
virtual void useVertexColor(bool use)
Definition: OgreRenderTypes.h:661
virtual void setPosition(vec3 &v)
Set the position for this light, only meaningful for point and spot lights.
Definition: OgreRenderTypes.h:848
virtual void setPoint()
Make this a point light, illuminating all objects within range as defined by the attenuation settings...
Definition: OgreRenderTypes.h:854
Definition: RenderTypes.h:479
Definition: RenderTypes.h:3056
virtual void setBlendMode(BlendMode bm)
Definition: OgreRenderTypes.h:630
virtual void setBlendMode(BlendMode bm)
Definition: RenderTypes.h:2985
virtual rotator getRotation() const
Definition: OgreRenderTypes.h:283
sval numplanes
Definition: OgreRenderTypes.h:1639
OgreMaterial(Ogre::MaterialPtr mat, OgreRenderScene *scene)
Definition: OgreRenderTypes.h:510
virtual void setLanguage(const std::string &lang)
Set the language for the source of the program, eg. cg.
Definition: OgreRenderTypes.h:2063
vec3 bbcenter
Definition: OgreRenderTypes.h:1644
std::string fontname
Definition: OgreRenderTypes.h:1807
virtual void cullBackfaces(bool cull)
Definition: RenderTypes.h:2993
void setParentObjects(Figure *parent, OgreRenderScene *scene)
Definition: OgreRenderTypes.h:937
virtual void setSpecular(const color &c)
Set the specular color to reflect.
Definition: OgreRenderTypes.h:851
virtual ProgramType getType() const
Definition: OgreRenderTypes.h:2061
Ogre::HardwareIndexBufferSharedPtr getIndexBuffer() const
Definition: OgreRenderTypes.h:975
Definition: OgreRenderTypes.h:1608
Represents a ray emanating from a point and moving in a direction. It provides methods for doing inte...
Definition: RenderTypes.h:3277
virtual real getSpaceWidth() const
Definition: OgreRenderTypes.h:1892
Ogre::Root * root
Definition: OgreRenderTypes.h:2185
virtual const Ogre::MaterialPtr & getMaterial() const
Definition: OgreRenderTypes.h:977
vec3 lastCamPos
Definition: OgreRenderTypes.h:927
Ogre::TexturePtr rtt_texture
Definition: OgreRenderTypes.h:263
bool updateGeom
Definition: OgreRenderTypes.h:1816
virtual bool usesTexFiltering() const
Definition: OgreRenderTypes.h:593
Ogre::Image img
Definition: OgreRenderTypes.h:198
virtual sval getDepth() const
Definition: OgreRenderTypes.h:1942
real z() const
Definition: RenderTypes.h:636
Ogre::SceneManager * mgr
Definition: OgreRenderTypes.h:2207
#define THROW_RENDEREX(e)
Definition: OgreRenderTypes.h:33
std::string language
Definition: OgreRenderTypes.h:1979
virtual void useDepthCheck(bool use)
Definition: OgreRenderTypes.h:676
virtual void useDepthWrite(bool use)
Definition: OgreRenderTypes.h:677
Definition: RenderTypes.h:3015
virtual bool usesFlatShading() const
Definition: OgreRenderTypes.h:590
virtual bool setGPUParamInt(ProgramType pt, const std::string &name, int val)
Definition: OgreRenderTypes.h:731
virtual const char * getFilename() const
Definition: OgreRenderTypes.h:1938
Definition: OgreRenderTypes.h:1786
unsigned char u8
Definition: RenderTypes.h:102
virtual void setBGColor(const color &c)
Definition: OgreRenderTypes.h:392
virtual const char * getName() const
Definition: OgreRenderTypes.h:275
Definition: OgreRenderTypes.h:836
virtual void setUp(const vec3 &v)
Definition: OgreRenderTypes.h:329
virtual real getPointSizeMin() const
Definition: OgreRenderTypes.h:580
nodemap nmap
Maps Figure objects to SceneNode objects created for them.
Definition: OgreRenderTypes.h:2217
virtual void setNumPlanes(sval num)
Definition: OgreRenderTypes.h:1671
virtual void setLinearAlpha(bool b)
Definition: RenderTypes.h:2808
virtual sval getPlaneIntersects(vec3 planept, vec3 planenorm, vec3 buffer[6][2], bool transformPlane=false, bool isXiPoint=false)
Definition: OgreRenderTypes.h:1717
void setMinVals(const vec3 &v)
Set each component of `this' to minimum of its component and the equivalent in `v'.
Definition: RenderTypes.h:678
Ogre::AxisAlignedBox aabb
Definition: OgreRenderTypes.h:922
Image objects represented loaded image files. These are used to access image data in code rather than...
Definition: RenderTypes.h:3739
Definition: OgreRenderTypes.h:2182
The all-important 3-space vector type. Note the lack of virtual members implies no vtable pointer...
Definition: RenderTypes.h:622
#define SAFE_DELETE(p)
Definition: RenderTypes.h:90
virtual bool isSecondaryCamera()
Definition: OgreRenderTypes.h:455
it
Definition: __init__.py:85
An IndexBuffer is used by Figure objects to read in the topologies for the figures to render...
Definition: RenderTypes.h:3081
virtual void setTextHeight(real height)
Definition: OgreRenderTypes.h:1880
virtual void setRotation(const rotator &r)
Definition: OgreRenderTypes.h:324
float r() const
Definition: RenderTypes.h:560
virtual sval getWidth() const
Definition: OgreRenderTypes.h:1940
virtual void useTexFiltering(bool use)
Definition: OgreRenderTypes.h:679
virtual TextureFormat getFormat() const
Get the loaded data's format.
Definition: OgreRenderTypes.h:203
virtual Ogre::Real getSquaredViewDepth(const Ogre::Camera *cam) const
Definition: OgreRenderTypes.h:999
ProgramType
Definition: RenderTypes.h:485
virtual bool usesLighting() const
Definition: OgreRenderTypes.h:589
Ogre::Real boundRad
Definition: OgreRenderTypes.h:923
Mutex * getMutex()
Definition: OgreRenderTypes.h:941
Matrix< OgreBaseRenderable::Vertex > vertices
Definition: OgreRenderTypes.h:1618
Mutex mutex
Definition: OgreRenderTypes.h:930
Ogre::HighLevelGpuProgramPtr getGPUProgByNumberedName(const std::string &name)
Definition: OgreRenderTypes.h:780
virtual void setBGObject(color col, bool enabled)
Set the background skybox to the given color if `enabled' is true, otherwise disable it...
Definition: OgreRenderTypes.h:2298
Ogre::MovableObject * obj
Definition: OgreRenderTypes.h:189
virtual void setAABB(const vec3 &minv, const vec3 &maxv)
Definition: OgreRenderTypes.h:1687
virtual bool setParameter(const std::string ¶m, const std::string &val)
Definition: OgreRenderTypes.h:2066
virtual std::string getFont() const
Definition: OgreRenderTypes.h:1886
Definition: RenderTypes.h:462
virtual void setWireframe(bool isWireframe)
Definition: OgreRenderTypes.h:436
virtual std::vector< std::string > getParameterNames() const
Definition: OgreRenderTypes.h:2157
virtual void setSecondaryCamera(bool secondary)
Definition: OgreRenderTypes.h:441
Ogre::RGBA col
Definition: OgreRenderTypes.h:887
real alpha
Definition: OgreRenderTypes.h:1640
virtual void setShininess(real c)
Set the amount of specular hightlighting to apply.
Definition: OgreRenderTypes.h:612
Ogre::RenderOperation::OperationType opType() const
Definition: OgreRenderTypes.h:972
void destroySceneNode(Ogre::SceneNode *node, Ogre::MovableObject *obj, OgreRenderScene *scene)
Deletes the `node' and `obj' objects in a thread-safe manner at some future time (probably next rende...
Definition: OgreRenderTypes.cpp:76
Matrix< T > * clone(const char *newname=NULL, bool isShared=false) const
Copy the contents of this matrix into a newly allocated one (which can be shared if isShared is true)...
Definition: RenderTypes.h:1669
virtual bool usesPointSprites() const
Definition: OgreRenderTypes.h:595
u32 id
Definition: OgreRenderTypes.h:261
indexval * localIndBuff
Index buffer in main memory used to stage data before being committed to video memory.
Definition: OgreRenderTypes.h:918
virtual void copySpectrumFrom(const Spectrum *s)
Definition: RenderTypes.h:2716
bool isOverlay
Definition: OgreRenderTypes.h:1817
vec3 norm() const
Return the normalized version of `this', or a zero vector if `this' is zero-length.
Definition: RenderTypes.h:669
OgreTextureVolumeFigure * fig
Definition: OgreRenderTypes.h:1610
virtual bool usesDepthCheck() const
Definition: OgreRenderTypes.h:591
virtual void usePointSprites(bool useSprites)
Definition: OgreRenderTypes.h:656
Ogre::TexturePtr ptr
Definition: OgreRenderTypes.h:1917
std::string source
Definition: OgreRenderTypes.h:1980
static Ogre::HardwareBuffer::Usage indexBufferUsage
Sets index buffer to be write only.
Definition: OgreRenderTypes.h:901
OgreRenderScene * scene
Definition: OgreRenderTypes.h:2191
virtual void applyResourceOps()
Iterate over all queued ResourceOp objects, calling their op() method, deleting them, and clearing the queue.
Definition: OgreRenderTypes.h:2259
virtual void setAmbient(const color &c)
Definition: RenderTypes.h:2969
ResourceOp(std::string parentname="")
Definition: OgreRenderTypes.h:160
u32 assetCount
Definition: OgreRenderTypes.h:2221
Definition: RenderTypes.h:463
std::string text
Definition: OgreRenderTypes.h:1806
virtual std::string getParameter(const std::string ¶m) const
Definition: OgreRenderTypes.h:2067
Ogre::IndexData * indexData
Definition: OgreRenderTypes.h:906
virtual void addResourceOp(ResourceOp *op)
Add the resource operation to the queue, this assigns responsibility to delete `op' to the OgreRender...
Definition: OgreRenderTypes.h:2272
virtual const char * getTexture() const
Definition: OgreRenderTypes.h:596
virtual std::string getSourceCode() const
Return the text of the source for this program.
Definition: OgreRenderTypes.h:2065
Ogre::MaterialPtr mat
Definition: OgreRenderTypes.h:495
real x() const
Definition: RenderTypes.h:1147
virtual void useLighting(bool use)
Definition: RenderTypes.h:2987
virtual sval getHeight() const
Definition: OgreRenderTypes.h:382
bool deferFillOp
Definition: OgreRenderTypes.h:910
Definition: OgreRenderTypes.h:1788
u8 * buffer
Definition: OgreRenderTypes.h:1918
void convertUByteStreamToRealMatrix(const char *stream, RealMatrix *mat)
Definition: RenderTypes.cpp:240
virtual void visitRenderables(Ogre::Renderable::Visitor *visitor, bool debugRenderables)
Definition: OgreRenderTypes.h:1015
virtual void rotate(const rotator &r)
Definition: OgreRenderTypes.h:319
virtual TextureFormat getFormat() const
Definition: OgreRenderTypes.h:1945
virtual void removeResourceOp(std::string parentname)
Remove operations with the given parent name from the queue.
Definition: OgreRenderTypes.h:2280
IndexMatrix indices
Definition: OgreRenderTypes.h:1619
virtual void setSpaceWidth(real width)
Definition: OgreRenderTypes.h:1881
sval createCount
Definition: OgreRenderTypes.h:1982
Ogre::HardwareVertexBufferSharedPtr colBuf
Definition: OgreRenderTypes.h:1820
Given a resource manager type M, calls remove() with the given name on the singleton instance of M...
Definition: OgreRenderTypes.h:177
virtual real getAlpha() const
Definition: OgreRenderTypes.h:1674
HAlignType
Definition: RenderTypes.h:492
virtual const char * getName() const
Definition: OgreRenderTypes.h:1939
virtual void setText(const std::string &text)
Definition: OgreRenderTypes.h:1874
Config * config
Definition: OgreRenderTypes.h:2189
real y() const
Definition: RenderTypes.h:1148
std::string geomname
Definition: OgreRenderTypes.h:503
virtual std::string getName() const
Definition: OgreRenderTypes.h:2052
BlendMode
Definition: RenderTypes.h:459
virtual void setShininess(real c)
Set the amount of specular hightlighting to apply.
Definition: RenderTypes.h:2976
virtual Ray * getProjectedRay(real x, real y, bool isAbsolute=true) const
Definition: OgreRenderTypes.h:408
Ogre::Font * fontobj
Definition: OgreRenderTypes.h:1822
Definition: RenderTypes.h:482
void setDepthSorting(bool val)
Definition: OgreRenderTypes.h:939
std::string name
Definition: OgreRenderTypes.h:180
size_t _numVertices
Definition: OgreRenderTypes.h:912
virtual void setSpotlight(real radsInner, real radsOuter, real falloff=1.0f)
Make this a spot light with the given beam angles and falloff values.
Definition: OgreRenderTypes.h:855
virtual void setAlpha(real a)
Definition: OgreRenderTypes.h:1675
virtual void setGPUProgram(const std::string &name, ProgramType pt)
Definition: OgreRenderTypes.h:707
virtual void setTexAABB(const vec3 &minv, const vec3 &maxv)
Definition: OgreRenderTypes.h:1682
virtual sval getDepth() const
Get the image depth.
Definition: OgreRenderTypes.h:206
virtual vec3 getPosition() const
Definition: OgreRenderTypes.h:280
Ogre::SceneManager * mgr
Definition: OgreRenderTypes.h:2186
OgreRenderScene * scene
Definition: OgreRenderTypes.h:840
OgreRenderScene * scene
The root scene which renders this object.
Definition: OgreRenderTypes.h:896
virtual Config * getConfig() const
Returns the Config object used to define properties for the scene.
Definition: OgreRenderTypes.h:2256
virtual bool setGPUParamColor(ProgramType pt, const std::string &name, color val)
Definition: OgreRenderTypes.h:767
virtual size_t getDataSize() const
Get the image data size in bytes.
Definition: OgreRenderTypes.h:208
virtual void setFarClip(real dist)
Definition: OgreRenderTypes.h:352
virtual void setNearClip(real dist)
Definition: OgreRenderTypes.h:347
OgreRenderScene * scene
Definition: OgreRenderTypes.h:1973
std::string parentname
Name of parent object which created this op and whose internal state is associated with it...
Definition: OgreRenderTypes.h:159
virtual void renderToFile(const std::string &filename, sval width, sval height, TextureFormat format=TF_RGB24, real stereoOffset=0.0)
Create an offscreen texture, render to it, then write the contents to the file `filename', assuming it's extension is for an understood format.
Definition: OgreRenderTypes.h:457
virtual vec3 getScreenPosition(vec3 pos) const
Returns the (x,y) screen coordinate of the vector `pos' as drawn with the current camera configuratio...
Definition: OgreRenderTypes.h:285
Ogre::String movableType
Definition: OgreRenderTypes.h:925
Ogre::RenderWindow * win
Definition: OgreRenderTypes.h:2208
void deleteLocalIndBuff()
Definition: OgreRenderTypes.h:965
double real
Definition: RenderTypes.h:108
real z() const
Definition: RenderTypes.h:1149
Ogre::Light * light
Definition: OgreRenderTypes.h:839
void set(const rotator &r)
Copy the values of `r' into `this'.
Definition: RenderTypes.h:1126
virtual void setAspectRatio(real rat)
Definition: OgreRenderTypes.h:398
Definition: RenderTypes.h:4051
HAlignType halign
Definition: OgreRenderTypes.h:1811
Ogre::HardwareVertexBufferSharedPtr vertBuf
Definition: OgreRenderTypes.h:904
virtual Ogre::PixelBox getPixelBuffer()
Definition: OgreRenderTypes.h:1930
virtual void useDepthWrite(bool use)
Definition: RenderTypes.h:2990
#define DLLEXPORT
Definition: RenderTypes.h:76
static Ogre::HardwareBuffer::Usage vertexBufferUsage
Sets vertex buffer to be write only.
Definition: OgreRenderTypes.h:899
virtual Ogre::Real getBoundingRadius() const
Definition: OgreRenderTypes.h:1007
Definition: OgreRenderTypes.h:255
void convertUShortStreamToRealMatrix(const char *stream, RealMatrix *mat)
Definition: RenderTypes.cpp:245
virtual void visitRenderables(Ogre::Renderable::Visitor *visitor, bool debugRenderables)
Definition: OgreRenderTypes.h:1864