Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

sheep::MeshModifier Class Reference

#include <meshmodifier.h>

Inheritance diagram for sheep::MeshModifier:

sheep::IMeshBuilder sheep::IMeshBuilder::IGeometryBuilder sheep::IMeshBuilder::IMaterialBuilder List of all members.

Public Member Functions

 MeshModifier (IMeshBuilder &builder)
virtual ~MeshModifier ()
void ComputeSmoothedVertexNormals (sheep::Real smoothing_threshold_angle)
 'smoothing_threshold' is expressed in radians.

void OptimizeMesh (sheep::Real vertex_welding_threshold_dist, sheep::Real normal_welding_threshold_angle)
virtual IGeometryBuilder * GeometryBuilder ()
virtual IMaterialBuilder * MaterialBuilder ()
virtual void BeginSubMesh (const std::string &name)
virtual void EndSubMesh ()
virtual FeatureId AppendVertex (const Vector3 &v)
virtual FeatureId AppendNormal (const Vector3 &vn)
virtual FeatureId AppendTexCoord (const Vector2 &vt)
virtual FeatureId AppendFace (int n, const FeatureId *v)
virtual void SetFaceNormals (FeatureId face, int n, const FeatureId *vn)
virtual void SetFaceTexCoords (FeatureId face, int n, const FeatureId *vt)
virtual void SetMaterial (FeatureId material)
virtual FeatureId BeginMaterial (const std::string &name)
virtual void EndMaterial ()
virtual void SetAmbientColor (Real r, Real g, Real b)
virtual void SetDiffuseColor (Real r, Real g, Real b)
virtual void SetSpecularColor (Real r, Real g, Real b)
virtual void SetTexture (int w, int h, const unsigned char *texels)
 24-bit RGB format.


Private Attributes

sub_meshm_sub_mesh
 Current sub mesh being defined.

IMeshBuilderm_builder
bool m_compute_smoothed_vn
 Vertex normals smoothing settings.

sheep::Real m_smoothing_threshold_angle
 Expressed in radians.

bool m_optimize_mesh
 Mesh optimization settings.

sheep::Real m_vertex_welding_threshold_dist
 Expressed in distance units.

sheep::Real m_normal_welding_threshold_angle
 Expressed in radians.


Constructor & Destructor Documentation

MeshModifier::MeshModifier IMeshBuilder builder  ) 
 

Definition at line 50 of file meshmodifier.cpp.

References m_compute_smoothed_vn, and m_optimize_mesh.

MeshModifier::~MeshModifier  )  [virtual]
 

Definition at line 57 of file meshmodifier.cpp.


Member Function Documentation

IMeshBuilder::FeatureId MeshModifier::AppendFace int  n,
const FeatureId v
[virtual]
 

Reimplemented from sheep::IMeshBuilder::IGeometryBuilder.

Definition at line 199 of file meshmodifier.cpp.

References sheep::MeshModifier::sub_mesh::m_faces, sheep::MeshModifier::sub_mesh::face::m_n0, sheep::MeshModifier::sub_mesh::face::m_n1, sheep::MeshModifier::sub_mesh::face::m_n2, m_sub_mesh, sheep::MeshModifier::sub_mesh::face::m_t0, sheep::MeshModifier::sub_mesh::face::m_t1, sheep::MeshModifier::sub_mesh::face::m_t2, sheep::MeshModifier::sub_mesh::face::m_v0, sheep::MeshModifier::sub_mesh::face::m_v1, and sheep::MeshModifier::sub_mesh::face::m_v2.

IMeshBuilder::FeatureId MeshModifier::AppendNormal const Vector3 vn  )  [virtual]
 

Reimplemented from sheep::IMeshBuilder::IGeometryBuilder.

Definition at line 184 of file meshmodifier.cpp.

References m_compute_smoothed_vn, sheep::MeshModifier::sub_mesh::m_normals, and m_sub_mesh.

IMeshBuilder::FeatureId MeshModifier::AppendTexCoord const Vector2 vt  )  [virtual]
 

Reimplemented from sheep::IMeshBuilder::IGeometryBuilder.

Definition at line 193 of file meshmodifier.cpp.

References m_sub_mesh, and sheep::MeshModifier::sub_mesh::m_texcoords.

IMeshBuilder::FeatureId MeshModifier::AppendVertex const Vector3 v  )  [virtual]
 

Reimplemented from sheep::IMeshBuilder::IGeometryBuilder.

Definition at line 178 of file meshmodifier.cpp.

References m_sub_mesh, and sheep::MeshModifier::sub_mesh::m_vertices.

IMeshBuilder::FeatureId MeshModifier::BeginMaterial const std::string &  name  )  [virtual]
 

Reimplemented from sheep::IMeshBuilder::IMaterialBuilder.

Definition at line 249 of file meshmodifier.cpp.

References m_builder, and sheep::IMeshBuilder::MaterialBuilder().

void MeshModifier::BeginSubMesh const std::string &  name  )  [virtual]
 

Reimplemented from sheep::IMeshBuilder::IGeometryBuilder.

Definition at line 76 of file meshmodifier.cpp.

References sheep::MeshModifier::sub_mesh::m_material, sheep::MeshModifier::sub_mesh::m_name, and m_sub_mesh.

void MeshModifier::ComputeSmoothedVertexNormals sheep::Real  smoothing_threshold_angle  ) 
 

'smoothing_threshold' is expressed in radians.

Definition at line 37 of file meshmodifier.cpp.

References m_compute_smoothed_vn, m_smoothing_threshold_angle, and sheep::Real.

Referenced by toxic::SceneBuilder::mesh_builder().

void MeshModifier::EndMaterial  )  [virtual]
 

Reimplemented from sheep::IMeshBuilder::IMaterialBuilder.

Definition at line 253 of file meshmodifier.cpp.

References m_builder, and sheep::IMeshBuilder::MaterialBuilder().

void MeshModifier::EndSubMesh  )  [virtual]
 

Reimplemented from sheep::IMeshBuilder::IGeometryBuilder.

Definition at line 82 of file meshmodifier.cpp.

References sheep::MeshModifier::sub_mesh::ComputeSmoothedVertexNormals(), sheep::IMeshBuilder::GeometryBuilder(), m_builder, m_compute_smoothed_vn, sheep::MeshModifier::sub_mesh::m_faces, sheep::MeshModifier::sub_mesh::m_material, sheep::MeshModifier::sub_mesh::m_name, m_normal_welding_threshold_angle, sheep::MeshModifier::sub_mesh::m_normals, m_optimize_mesh, m_smoothing_threshold_angle, m_sub_mesh, sheep::MeshModifier::sub_mesh::m_texcoords, m_vertex_welding_threshold_dist, sheep::MeshModifier::sub_mesh::m_vertices, sheep::MeshModifier::sub_mesh::OptimizeFaces(), sheep::MeshModifier::sub_mesh::OptimizeNormals(), and sheep::MeshModifier::sub_mesh::OptimizeVertices().

IMeshBuilder::IGeometryBuilder * MeshModifier::GeometryBuilder  )  [virtual]
 

Implements sheep::IMeshBuilder.

Definition at line 62 of file meshmodifier.cpp.

References sheep::IMeshBuilder::GeometryBuilder(), and m_builder.

IMeshBuilder::IMaterialBuilder * MeshModifier::MaterialBuilder  )  [virtual]
 

Implements sheep::IMeshBuilder.

Definition at line 68 of file meshmodifier.cpp.

References m_builder, and sheep::IMeshBuilder::MaterialBuilder().

void MeshModifier::OptimizeMesh sheep::Real  vertex_welding_threshold_dist,
sheep::Real  normal_welding_threshold_angle
 

'vertex_welding_threshold' is expressed in distance units. 'normal_welding_threshold' is expressed in radians.

Definition at line 42 of file meshmodifier.cpp.

References m_normal_welding_threshold_angle, m_optimize_mesh, m_vertex_welding_threshold_dist, and sheep::Real.

Referenced by toxic::SceneBuilder::mesh_builder().

void MeshModifier::SetAmbientColor Real  r,
Real  g,
Real  b
[virtual]
 

Reimplemented from sheep::IMeshBuilder::IMaterialBuilder.

Definition at line 257 of file meshmodifier.cpp.

References m_builder, sheep::IMeshBuilder::MaterialBuilder(), and sheep::Real.

void MeshModifier::SetDiffuseColor Real  r,
Real  g,
Real  b
[virtual]
 

Reimplemented from sheep::IMeshBuilder::IMaterialBuilder.

Definition at line 261 of file meshmodifier.cpp.

References m_builder, sheep::IMeshBuilder::MaterialBuilder(), and sheep::Real.

void MeshModifier::SetFaceNormals FeatureId  face,
int  n,
const FeatureId vn
[virtual]
 

Reimplemented from sheep::IMeshBuilder::IGeometryBuilder.

Definition at line 217 of file meshmodifier.cpp.

References m_compute_smoothed_vn, sheep::MeshModifier::sub_mesh::m_faces, sheep::MeshModifier::sub_mesh::face::m_n0, sheep::MeshModifier::sub_mesh::face::m_n1, sheep::MeshModifier::sub_mesh::face::m_n2, and m_sub_mesh.

void MeshModifier::SetFaceTexCoords FeatureId  face,
int  n,
const FeatureId vt
[virtual]
 

Reimplemented from sheep::IMeshBuilder::IGeometryBuilder.

Definition at line 231 of file meshmodifier.cpp.

References sheep::MeshModifier::sub_mesh::m_faces, m_sub_mesh, sheep::MeshModifier::sub_mesh::face::m_t0, sheep::MeshModifier::sub_mesh::face::m_t1, and sheep::MeshModifier::sub_mesh::face::m_t2.

void MeshModifier::SetMaterial FeatureId  material  )  [virtual]
 

Reimplemented from sheep::IMeshBuilder::IGeometryBuilder.

Definition at line 243 of file meshmodifier.cpp.

References sheep::MeshModifier::sub_mesh::m_material, and m_sub_mesh.

void MeshModifier::SetSpecularColor Real  r,
Real  g,
Real  b
[virtual]
 

Reimplemented from sheep::IMeshBuilder::IMaterialBuilder.

Definition at line 265 of file meshmodifier.cpp.

References m_builder, sheep::IMeshBuilder::MaterialBuilder(), and sheep::Real.

void MeshModifier::SetTexture int  w,
int  h,
const unsigned char *  texels
[virtual]
 

24-bit RGB format.

< 24-bit RGB format.

Reimplemented from sheep::IMeshBuilder::IMaterialBuilder.

Definition at line 269 of file meshmodifier.cpp.

References m_builder, and sheep::IMeshBuilder::MaterialBuilder().


Member Data Documentation

IMeshBuilder& sheep::MeshModifier::m_builder [private]
 

Definition at line 111 of file meshmodifier.h.

Referenced by BeginMaterial(), EndMaterial(), EndSubMesh(), GeometryBuilder(), MaterialBuilder(), SetAmbientColor(), SetDiffuseColor(), SetSpecularColor(), and SetTexture().

bool sheep::MeshModifier::m_compute_smoothed_vn [private]
 

Vertex normals smoothing settings.

Definition at line 114 of file meshmodifier.h.

Referenced by AppendNormal(), ComputeSmoothedVertexNormals(), EndSubMesh(), MeshModifier(), and SetFaceNormals().

sheep::Real sheep::MeshModifier::m_normal_welding_threshold_angle [private]
 

Expressed in radians.

Definition at line 120 of file meshmodifier.h.

Referenced by EndSubMesh(), and OptimizeMesh().

bool sheep::MeshModifier::m_optimize_mesh [private]
 

Mesh optimization settings.

Definition at line 118 of file meshmodifier.h.

Referenced by EndSubMesh(), MeshModifier(), and OptimizeMesh().

sheep::Real sheep::MeshModifier::m_smoothing_threshold_angle [private]
 

Expressed in radians.

Definition at line 115 of file meshmodifier.h.

Referenced by ComputeSmoothedVertexNormals(), and EndSubMesh().

sub_mesh* sheep::MeshModifier::m_sub_mesh [private]
 

Current sub mesh being defined.

Definition at line 109 of file meshmodifier.h.

Referenced by AppendFace(), AppendNormal(), AppendTexCoord(), AppendVertex(), BeginSubMesh(), EndSubMesh(), SetFaceNormals(), SetFaceTexCoords(), and SetMaterial().

sheep::Real sheep::MeshModifier::m_vertex_welding_threshold_dist [private]
 

Expressed in distance units.

Definition at line 119 of file meshmodifier.h.

Referenced by EndSubMesh(), and OptimizeMesh().


The documentation for this class was generated from the following files:
Generated on Tue May 11 01:31:55 2004 for toxic by doxygen 1.3.6