Refactor mat.hxx header.
Avoid many includes in mat.hxx, so ground testing code (e.g., Yasim) doesn't end up pulling in many OSG and scene classes.
This commit is contained in:
@@ -54,8 +54,12 @@
|
|||||||
#include <simgear/props/props_io.hxx>
|
#include <simgear/props/props_io.hxx>
|
||||||
#include <simgear/props/vectorPropTemplates.hxx>
|
#include <simgear/props/vectorPropTemplates.hxx>
|
||||||
#include <simgear/scene/model/model.hxx>
|
#include <simgear/scene/model/model.hxx>
|
||||||
|
#include <simgear/scene/material/matmodel.hxx>
|
||||||
#include <simgear/scene/util/RenderConstants.hxx>
|
#include <simgear/scene/util/RenderConstants.hxx>
|
||||||
#include <simgear/scene/util/StateAttributeFactory.hxx>
|
#include <simgear/scene/util/StateAttributeFactory.hxx>
|
||||||
|
#include <simgear/props/condition.hxx>
|
||||||
|
#include <simgear/scene/util/SGSceneFeatures.hxx>
|
||||||
|
#include <simgear/scene/tgdb/SGTexturedTriangleBin.hxx>
|
||||||
|
|
||||||
#include "Effect.hxx"
|
#include "Effect.hxx"
|
||||||
#include "Technique.hxx"
|
#include "Technique.hxx"
|
||||||
@@ -448,7 +452,7 @@ Effect* SGMaterial::get_effect(int i)
|
|||||||
return _status[i].effect.get();
|
return _status[i].effect.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
Effect* SGMaterial::get_effect(SGTexturedTriangleBin triangleBin)
|
Effect* SGMaterial::get_effect(const SGTexturedTriangleBin& triangleBin)
|
||||||
{
|
{
|
||||||
if (_status.size() == 0) {
|
if (_status.size() == 0) {
|
||||||
SG_LOG( SG_GENERAL, SG_WARN, "No effect available.");
|
SG_LOG( SG_GENERAL, SG_WARN, "No effect available.");
|
||||||
@@ -465,7 +469,7 @@ Effect* SGMaterial::get_effect()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
osg::Texture2D* SGMaterial::get_object_mask(SGTexturedTriangleBin triangleBin)
|
osg::Texture2D* SGMaterial::get_object_mask(const SGTexturedTriangleBin& triangleBin)
|
||||||
{
|
{
|
||||||
if (_status.size() == 0) {
|
if (_status.size() == 0) {
|
||||||
SG_LOG( SG_GENERAL, SG_WARN, "No mask available.");
|
SG_LOG( SG_GENERAL, SG_WARN, "No mask available.");
|
||||||
@@ -541,6 +545,15 @@ SGMaterialGlyph* SGMaterial::get_glyph (const string& name) const
|
|||||||
return it->second;
|
return it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SGMaterial::valid() const
|
||||||
|
{
|
||||||
|
if (condition) {
|
||||||
|
return condition->test();
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
// SGMaterialGlyph.
|
// SGMaterialGlyph.
|
||||||
|
|||||||
@@ -26,10 +26,6 @@
|
|||||||
#ifndef _SG_MAT_HXX
|
#ifndef _SG_MAT_HXX
|
||||||
#define _SG_MAT_HXX
|
#define _SG_MAT_HXX
|
||||||
|
|
||||||
#ifndef __cplusplus
|
|
||||||
# error This library requires C++
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <simgear/compiler.h>
|
#include <simgear/compiler.h>
|
||||||
|
|
||||||
#include <string> // Standard C++ string library
|
#include <string> // Standard C++ string library
|
||||||
@@ -37,7 +33,6 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include "Effect.hxx"
|
#include "Effect.hxx"
|
||||||
#include <simgear/scene/tgdb/SGTexturedTriangleBin.hxx>
|
|
||||||
|
|
||||||
#include <osg/ref_ptr>
|
#include <osg/ref_ptr>
|
||||||
#include <osg/Texture2D>
|
#include <osg/Texture2D>
|
||||||
@@ -47,21 +42,21 @@ namespace osg
|
|||||||
class StateSet;
|
class StateSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <simgear/scene/util/SGReaderWriterOptions.hxx>
|
|
||||||
#include <simgear/props/props.hxx>
|
|
||||||
#include <simgear/structure/SGSharedPtr.hxx>
|
#include <simgear/structure/SGSharedPtr.hxx>
|
||||||
#include <simgear/scene/util/SGSceneFeatures.hxx>
|
#include <simgear/math/SGMath.hxx>
|
||||||
#include <simgear/props/condition.hxx>
|
|
||||||
|
|
||||||
#include "matmodel.hxx"
|
|
||||||
|
|
||||||
namespace simgear
|
namespace simgear
|
||||||
{
|
{
|
||||||
class Effect;
|
class Effect;
|
||||||
void reload_shaders();
|
void reload_shaders();
|
||||||
|
class SGReaderWriterOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class SGMatModelGroup;
|
||||||
|
class SGCondition;
|
||||||
|
class SGPropertyNode;
|
||||||
class SGMaterialGlyph;
|
class SGMaterialGlyph;
|
||||||
|
class SGTexturedTriangleBin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A material in the scene graph.
|
* A material in the scene graph.
|
||||||
@@ -109,13 +104,13 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Get the textured state.
|
* Get the textured state.
|
||||||
*/
|
*/
|
||||||
simgear::Effect* get_effect(SGTexturedTriangleBin triangleBin);
|
simgear::Effect* get_effect(const SGTexturedTriangleBin& triangleBin);
|
||||||
simgear::Effect* get_effect();
|
simgear::Effect* get_effect();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the textured state.
|
* Get the textured state.
|
||||||
*/
|
*/
|
||||||
osg::Texture2D* get_object_mask(SGTexturedTriangleBin triangleBin);
|
osg::Texture2D* get_object_mask(const SGTexturedTriangleBin& triangleBin);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -311,13 +306,7 @@ public:
|
|||||||
* Evaluate whether this material is valid given the current global
|
* Evaluate whether this material is valid given the current global
|
||||||
* property state.
|
* property state.
|
||||||
*/
|
*/
|
||||||
bool valid() {
|
bool valid() const;
|
||||||
if (condition) {
|
|
||||||
return condition->test();
|
|
||||||
} else {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return pointer to glyph class, or 0 if it doesn't exist.
|
* Return pointer to glyph class, or 0 if it doesn't exist.
|
||||||
|
|||||||
@@ -39,6 +39,7 @@
|
|||||||
#include <simgear/misc/sgstream.hxx>
|
#include <simgear/misc/sgstream.hxx>
|
||||||
#include <simgear/scene/util/SGReaderWriterOptions.hxx>
|
#include <simgear/scene/util/SGReaderWriterOptions.hxx>
|
||||||
#include <simgear/scene/util/RenderConstants.hxx>
|
#include <simgear/scene/util/RenderConstants.hxx>
|
||||||
|
#include <simgear/scene/util/OsgMath.hxx>
|
||||||
#include <simgear/scene/material/mat.hxx>
|
#include <simgear/scene/material/mat.hxx>
|
||||||
#include <simgear/scene/material/matlib.hxx>
|
#include <simgear/scene/material/matlib.hxx>
|
||||||
#include <simgear/scene/tgdb/apt_signs.hxx>
|
#include <simgear/scene/tgdb/apt_signs.hxx>
|
||||||
|
|||||||
@@ -22,7 +22,11 @@
|
|||||||
#ifndef SG_MAT_MODEL_BIN_HXX
|
#ifndef SG_MAT_MODEL_BIN_HXX
|
||||||
#define SG_MAT_MODEL_BIN_HXX
|
#define SG_MAT_MODEL_BIN_HXX
|
||||||
|
|
||||||
#include <math.h>
|
#include <vector>
|
||||||
|
#include <simgear/math/SGMath.hxx>
|
||||||
|
|
||||||
|
// forward decls
|
||||||
|
class SGMatModel;
|
||||||
|
|
||||||
class SGMatModelBin {
|
class SGMatModelBin {
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
#include <simgear/scene/material/EffectGeode.hxx>
|
#include <simgear/scene/material/EffectGeode.hxx>
|
||||||
#include <simgear/scene/material/mat.hxx>
|
#include <simgear/scene/material/mat.hxx>
|
||||||
#include <simgear/scene/material/matlib.hxx>
|
#include <simgear/scene/material/matlib.hxx>
|
||||||
|
#include <simgear/scene/util/OsgMath.hxx>
|
||||||
#include <simgear/scene/util/VectorArrayAdapter.hxx>
|
#include <simgear/scene/util/VectorArrayAdapter.hxx>
|
||||||
#include <simgear/scene/util/SGNodeMasks.hxx>
|
#include <simgear/scene/util/SGNodeMasks.hxx>
|
||||||
|
|
||||||
|
|||||||
@@ -361,7 +361,8 @@ public:
|
|||||||
osg::Geometry* buildGeometry() const
|
osg::Geometry* buildGeometry() const
|
||||||
{ return buildGeometry(getTriangles()); }
|
{ return buildGeometry(getTriangles()); }
|
||||||
|
|
||||||
int getTextureIndex() {
|
int getTextureIndex() const
|
||||||
|
{
|
||||||
if (empty() || getNumTriangles() == 0)
|
if (empty() || getNumTriangles() == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@
|
|||||||
#include <simgear/scene/material/EffectGeode.hxx>
|
#include <simgear/scene/material/EffectGeode.hxx>
|
||||||
#include <simgear/scene/material/mat.hxx>
|
#include <simgear/scene/material/mat.hxx>
|
||||||
#include <simgear/scene/material/matlib.hxx>
|
#include <simgear/scene/material/matlib.hxx>
|
||||||
|
#include <simgear/scene/util/OsgMath.hxx>
|
||||||
|
|
||||||
#include "apt_signs.hxx"
|
#include "apt_signs.hxx"
|
||||||
|
|
||||||
|
|||||||
@@ -52,11 +52,13 @@
|
|||||||
#include <simgear/scene/material/Effect.hxx>
|
#include <simgear/scene/material/Effect.hxx>
|
||||||
#include <simgear/scene/material/EffectGeode.hxx>
|
#include <simgear/scene/material/EffectGeode.hxx>
|
||||||
#include <simgear/scene/material/mat.hxx>
|
#include <simgear/scene/material/mat.hxx>
|
||||||
|
#include <simgear/scene/material/matmodel.hxx>
|
||||||
#include <simgear/scene/material/matlib.hxx>
|
#include <simgear/scene/material/matlib.hxx>
|
||||||
#include <simgear/scene/model/SGOffsetTransform.hxx>
|
#include <simgear/scene/model/SGOffsetTransform.hxx>
|
||||||
#include <simgear/scene/util/SGUpdateVisitor.hxx>
|
#include <simgear/scene/util/SGUpdateVisitor.hxx>
|
||||||
#include <simgear/scene/util/SGNodeMasks.hxx>
|
#include <simgear/scene/util/SGNodeMasks.hxx>
|
||||||
#include <simgear/scene/util/QuadTreeBuilder.hxx>
|
#include <simgear/scene/util/QuadTreeBuilder.hxx>
|
||||||
|
#include <simgear/scene/util/SGReaderWriterOptions.hxx>
|
||||||
|
|
||||||
#include "SGTexturedTriangleBin.hxx"
|
#include "SGTexturedTriangleBin.hxx"
|
||||||
#include "SGLightBin.hxx"
|
#include "SGLightBin.hxx"
|
||||||
|
|||||||
Reference in New Issue
Block a user