]> git.mxchange.org Git - flightgear.git/commitdiff
Removed unused alpha variable; more code cleanups and documentation.
authordavid <david>
Sun, 30 Dec 2001 03:04:39 +0000 (03:04 +0000)
committerdavid <david>
Sun, 30 Dec 2001 03:04:39 +0000 (03:04 +0000)
src/Objects/newmat.cxx
src/Objects/newmat.hxx

index d2b1674e4090094dcb5b39f488d692fbd757eae8..aad28e558b1c40a5dfd257f78a78f87126df4bdb 100644 (file)
 #include "newmat.hxx"
 
 
-static bool
+\f
+////////////////////////////////////////////////////////////////////////
+// Local static functions.
+////////////////////////////////////////////////////////////////////////
+
+/**
+ * Internal method to test whether a file exists.
+ *
+ * TODO: this should be moved to a SimGear library of local file
+ * functions.
+ */
+static inline bool
 local_file_exists( const string& path ) {
     sg_gzifstream in( path );
     if ( ! in.is_open() ) {
@@ -52,24 +63,11 @@ local_file_exists( const string& path ) {
 }
 
 
-void 
-FGNewMat::init ()
-{
-  texture_path = "";
-  state = 0;
-  textured = 0;
-  nontextured = 0;
-  alpha = false;
-  xsize = 0;
-  ysize = 0;
-  wrapu = true;
-  wrapv = true;
-  mipmap = true;
-  texture_loaded = false;
-  refcount = 0;
-  for (int i = 0; i < 4; i++)
-    ambient[i] = diffuse[i] = specular[i] = emission[i] = 0.0;
-}
+\f
+////////////////////////////////////////////////////////////////////////
+// Constructors and destructor.
+////////////////////////////////////////////////////////////////////////
+
 
 FGNewMat::FGNewMat (const SGPropertyNode * props)
 {
@@ -90,6 +88,82 @@ FGNewMat::FGNewMat (ssgSimpleState * s)
     set_ssg_state(s);
 }
 
+FGNewMat::~FGNewMat (void)
+{
+}
+
+
+\f
+////////////////////////////////////////////////////////////////////////
+// Public methods.
+////////////////////////////////////////////////////////////////////////
+
+void
+FGNewMat::read_properties (const SGPropertyNode * props)
+{
+                               // Get the path to the texture
+  string tname = props->getStringValue("texture", "unknown.rgb");
+  SGPath tpath(globals->get_fg_root());
+  tpath.append("Textures.high");
+  tpath.append(tname);
+  if (!local_file_exists(tpath.str())) {
+    tpath = SGPath(globals->get_fg_root());
+    tpath.append("Textures");
+    tpath.append(tname);
+  }
+  texture_path = tpath.str();
+
+  xsize = props->getDoubleValue("xsize", 0.0);
+  ysize = props->getDoubleValue("ysize", 0.0);
+  wrapu = props->getBoolValue("wrapu", true);
+  wrapv = props->getBoolValue("wrapv", true);
+  mipmap = props->getBoolValue("mipmap", true);
+  light_coverage = props->getDoubleValue("light-coverage");
+
+  ambient[0] = props->getDoubleValue("ambient/r", 0.0);
+  ambient[1] = props->getDoubleValue("ambient/g", 0.0);
+  ambient[2] = props->getDoubleValue("ambient/b", 0.0);
+  ambient[3] = props->getDoubleValue("ambient/a", 0.0);
+
+  diffuse[0] = props->getDoubleValue("diffuse/r", 0.0);
+  diffuse[1] = props->getDoubleValue("diffuse/g", 0.0);
+  diffuse[2] = props->getDoubleValue("diffuse/b", 0.0);
+  diffuse[3] = props->getDoubleValue("diffuse/a", 0.0);
+
+  specular[0] = props->getDoubleValue("specular/r", 0.0);
+  specular[1] = props->getDoubleValue("specular/g", 0.0);
+  specular[2] = props->getDoubleValue("specular/b", 0.0);
+  specular[3] = props->getDoubleValue("specular/a", 0.0);
+
+  emission[0] = props->getDoubleValue("emissive/r", 0.0);
+  emission[1] = props->getDoubleValue("emissive/g", 0.0);
+  emission[2] = props->getDoubleValue("emissive/b", 0.0);
+  emission[3] = props->getDoubleValue("emissive/a", 0.0);
+}
+
+
+\f
+////////////////////////////////////////////////////////////////////////
+// Private methods.
+////////////////////////////////////////////////////////////////////////
+
+void 
+FGNewMat::init ()
+{
+  texture_path = "";
+  state = 0;
+  textured = 0;
+  nontextured = 0;
+  xsize = 0;
+  ysize = 0;
+  wrapu = true;
+  wrapv = true;
+  mipmap = true;
+  texture_loaded = false;
+  refcount = 0;
+  for (int i = 0; i < 4; i++)
+    ambient[i] = diffuse[i] = specular[i] = emission[i] = 0.0;
+}
 
 bool
 FGNewMat::load_texture ()
@@ -109,7 +183,8 @@ FGNewMat::load_texture ()
 }
 
 
-void FGNewMat::build_ssg_state( bool defer_tex_load )
+void 
+FGNewMat::build_ssg_state (bool defer_tex_load)
 {
     GLenum shade_model =
       (fgGetBool("/sim/rendering/shading") ? GL_SMOOTH : GL_FLAT);
@@ -176,7 +251,8 @@ void FGNewMat::build_ssg_state( bool defer_tex_load )
 }
 
 
-void FGNewMat::set_ssg_state( ssgSimpleState *s ) {
+void FGNewMat::set_ssg_state( ssgSimpleState *s )
+{
     state = new ssgStateSelector(2);
     state->ref();
 
@@ -216,51 +292,4 @@ void FGNewMat::set_ssg_state( ssgSimpleState *s ) {
     state->selectStep(0);
 }
 
-
-// Destructor
-FGNewMat::~FGNewMat ( void ) {
-}
-
-
-void
-FGNewMat::read_properties (const SGPropertyNode * props)
-{
-                               // Get the path to the texture
-  string tname = props->getStringValue("texture", "unknown.rgb");
-  SGPath tpath(globals->get_fg_root());
-  tpath.append("Textures.high");
-  tpath.append(tname);
-  if (!local_file_exists(tpath.str())) {
-    tpath = SGPath(globals->get_fg_root());
-    tpath.append("Textures");
-    tpath.append(tname);
-  }
-  texture_path = tpath.str();
-
-  xsize = props->getDoubleValue("xsize", 0.0);
-  ysize = props->getDoubleValue("ysize", 0.0);
-  wrapu = props->getBoolValue("wrapu", true);
-  wrapv = props->getBoolValue("wrapv", true);
-  mipmap = props->getBoolValue("mipmap", true);
-  light_coverage = props->getDoubleValue("light-coverage");
-
-  ambient[0] = props->getDoubleValue("ambient/r", 0.0);
-  ambient[1] = props->getDoubleValue("ambient/g", 0.0);
-  ambient[2] = props->getDoubleValue("ambient/b", 0.0);
-  ambient[3] = props->getDoubleValue("ambient/a", 0.0);
-
-  diffuse[0] = props->getDoubleValue("diffuse/r", 0.0);
-  diffuse[1] = props->getDoubleValue("diffuse/g", 0.0);
-  diffuse[2] = props->getDoubleValue("diffuse/b", 0.0);
-  diffuse[3] = props->getDoubleValue("diffuse/a", 0.0);
-
-  specular[0] = props->getDoubleValue("specular/r", 0.0);
-  specular[1] = props->getDoubleValue("specular/g", 0.0);
-  specular[2] = props->getDoubleValue("specular/b", 0.0);
-  specular[3] = props->getDoubleValue("specular/a", 0.0);
-
-  emission[0] = props->getDoubleValue("emissive/r", 0.0);
-  emission[1] = props->getDoubleValue("emissive/g", 0.0);
-  emission[2] = props->getDoubleValue("emissive/b", 0.0);
-  emission[3] = props->getDoubleValue("emissive/a", 0.0);
-}
+// end of newmat.cxx
index 0aaee654f6e7feec0cc284a821524a78a2712570..a1fb2e8acfa6e19c59fb302783a00f8a026630c9 100644 (file)
@@ -150,25 +150,30 @@ public:
   /**
    * Get the current state.
    */
-  virtual inline ssgStateSelector *get_state() const { return state; }
+  virtual inline ssgStateSelector *get_state () const { return state; }
 
 
   /**
-   * Add a reference to the texture.
+   * Increment the reference count for this material.
+   *
+   * A material with 0 references may be deleted by the
+   * material library.
    */
-  virtual inline void ref() { refcount++; }
+  virtual inline void ref () { refcount++; }
 
 
   /**
-   * Remove a reference from the texture.
+   * Decrement the reference count for this material.
    */
-  virtual inline void deRef() { refcount--; }
+  virtual inline void deRef () { refcount--; }
 
 
   /**
-   * Get the number of references to the texture.
+   * Get the reference count for this material.
+   *
+   * @return The number of references (0 if none).
    */
-  virtual inline int getRef() const { return refcount; }
+  virtual inline int getRef () const { return refcount; }
 
 protected:
 
@@ -198,9 +203,6 @@ private:
   ssgSimpleState *textured;
   ssgSimpleState *nontextured;
 
-  // alpha texture?
-  bool alpha;
-  
   // texture size
   double xsize, ysize;