Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes

mitk::ShaderRepository::Shader Class Reference

#include <mitkShaderRepository.h>

List of all members.

Classes

class  Uniform

Public Types

typedef Shader Self
typedef itk::Object Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
 Shader ()
 ~Shader ()
void LoadPropertiesFromPath ()
UniformGetUniform (char *)
std::list< Uniform::Pointer > * GetUniforms ()

Static Public Member Functions

static Pointer New ()

Public Attributes

std::list< Uniform::Pointeruniforms
std::string name
std::string path

Detailed Description

Definition at line 50 of file mitkShaderRepository.h.


Member Typedef Documentation

typedef itk::SmartPointer<const Self> mitk::ShaderRepository::Shader::ConstPointer

Definition at line 54 of file mitkShaderRepository.h.

typedef itk::SmartPointer<Self> mitk::ShaderRepository::Shader::Pointer

Definition at line 54 of file mitkShaderRepository.h.

Definition at line 54 of file mitkShaderRepository.h.

Definition at line 54 of file mitkShaderRepository.h.


Constructor & Destructor Documentation

mitk::ShaderRepository::Shader::Shader (  )

Constructor

Definition at line 122 of file mitkShaderRepository.cpp.

{
}
mitk::ShaderRepository::Shader::~Shader (  )

Destructor

Definition at line 126 of file mitkShaderRepository.cpp.

{
}

Member Function Documentation

virtual const char* mitk::ShaderRepository::Shader::GetClassName (  ) const [virtual]
Uniform* mitk::ShaderRepository::Shader::GetUniform ( char *   ) [inline]

Definition at line 113 of file mitkShaderRepository.h.

{ return 0; }
std::list<Uniform::Pointer>* mitk::ShaderRepository::Shader::GetUniforms (  ) [inline]

Definition at line 115 of file mitkShaderRepository.h.

    {
      return &uniforms;
    }
void mitk::ShaderRepository::Shader::LoadPropertiesFromPath (  )

Definition at line 130 of file mitkShaderRepository.cpp.

{
  vtkProperty *p;

  p = vtkProperty::New();

  p->LoadMaterial(path.c_str());

  vtkXMLMaterial *m=p->GetMaterial();

  // Vertexshader uniforms
  {
    vtkXMLShader *s=m->GetVertexShader();
    vtkXMLDataElement *x=s->GetRootElement();
    int n=x->GetNumberOfNestedElements();
    for(int r=0;r<n;r++)
    {
      vtkXMLDataElement *y=x->GetNestedElement(r);
      if(!strcmp(y->GetName(),"ApplicationUniform"))
      {
          Uniform::Pointer element=Uniform::New();
          element->LoadFromXML(y);
          uniforms.push_back(element);
      }
    }
  }

  // Fragmentshader uniforms
  {
    vtkXMLShader *s=m->GetFragmentShader();
    vtkXMLDataElement *x=s->GetRootElement();
    int n=x->GetNumberOfNestedElements();
    for(int r=0;r<n;r++)
    {
      vtkXMLDataElement *y=x->GetNestedElement(r);
      if(!strcmp(y->GetName(),"ApplicationUniform"))
      {
          Uniform::Pointer element=Uniform::New();
          element->LoadFromXML(y);
          uniforms.push_back(element);
      }
    }
  }

  p->Delete();
}
static Pointer mitk::ShaderRepository::Shader::New (  ) [static]

Member Data Documentation

Definition at line 108 of file mitkShaderRepository.h.

Referenced by mitk::ShaderRepository::ApplyProperties().

Definition at line 109 of file mitkShaderRepository.h.

Referenced by mitk::ShaderRepository::ApplyProperties().

Definition at line 96 of file mitkShaderRepository.h.

Referenced by mitk::ShaderRepository::ApplyProperties().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines