41 #include "vtkRenderingCoreModule.h"
53 #define VTK_WIREFRAME 1
65 class vtkPropertyInternals;
114 vtkGetMacro(Lighting,
bool);
115 vtkSetMacro(Lighting,
bool);
116 vtkBooleanMacro(Lighting,
bool);
126 vtkGetMacro(RenderPointsAsSpheres,
bool);
127 vtkSetMacro(RenderPointsAsSpheres,
bool);
128 vtkBooleanMacro(RenderPointsAsSpheres,
bool);
139 vtkGetMacro(RenderLinesAsTubes,
bool);
140 vtkSetMacro(RenderLinesAsTubes,
bool);
141 vtkBooleanMacro(RenderLinesAsTubes,
bool);
149 vtkGetMacro(Interpolation,
int);
154 const char* GetInterpolationAsString();
162 vtkGetMacro(Representation,
int);
166 const char* GetRepresentationAsString();
175 virtual void SetColor(
double r,
double g,
double b);
176 virtual void SetColor(
double a[3]);
178 void GetColor(
double rgb[3]);
179 void GetColor(
double& r,
double& g,
double& b);
195 vtkGetMacro(BaseIOR,
double);
205 vtkSetClampMacro(Metallic,
double, 0.0, 1.0);
206 vtkGetMacro(Metallic,
double);
217 vtkSetClampMacro(Roughness,
double, 0.0, 1.0);
218 vtkGetMacro(Roughness,
double);
228 vtkSetClampMacro(Anisotropy,
double, 0.0, 1.0);
229 vtkGetMacro(Anisotropy,
double);
239 vtkSetClampMacro(AnisotropyRotation,
double, 0.0, 1.0);
240 vtkGetMacro(AnisotropyRotation,
double);
249 vtkSetClampMacro(CoatIOR,
double, 1.0, VTK_FLOAT_MAX);
250 vtkGetMacro(CoatIOR,
double);
260 vtkSetClampMacro(CoatRoughness,
double, 0.0, 1.0);
261 vtkGetMacro(CoatRoughness,
double);
271 vtkSetClampMacro(CoatStrength,
double, 0.0, 1.0);
272 vtkGetMacro(CoatStrength,
double);
281 vtkSetVector3Macro(CoatColor,
double);
282 vtkGetVector3Macro(CoatColor,
double);
292 vtkSetClampMacro(CoatNormalScale,
double, 0.0, 1.0);
293 vtkGetMacro(CoatNormalScale,
double);
302 vtkSetMacro(NormalScale,
double);
303 vtkGetMacro(NormalScale,
double);
313 vtkSetClampMacro(OcclusionStrength,
double, 0.0, 1.0);
314 vtkGetMacro(OcclusionStrength,
double);
324 vtkSetVector3Macro(EmissiveFactor,
double);
325 vtkGetVector3Macro(EmissiveFactor,
double);
335 vtkSetVector3Macro(EdgeTint,
double);
336 vtkGetVector3Macro(EdgeTint,
double);
343 vtkSetClampMacro(Ambient,
double, 0.0, 1.0);
344 vtkGetMacro(Ambient,
double);
351 vtkSetClampMacro(Diffuse,
double, 0.0, 1.0);
352 vtkGetMacro(Diffuse,
double);
359 vtkSetClampMacro(Specular,
double, 0.0, 1.0);
360 vtkGetMacro(Specular,
double);
367 vtkSetClampMacro(SpecularPower,
double, 0.0, 128.0);
368 vtkGetMacro(SpecularPower,
double);
376 vtkSetClampMacro(Opacity,
double, 0.0, 1.0);
377 vtkGetMacro(Opacity,
double);
387 vtkSetVector3Macro(AmbientColor,
double);
388 vtkGetVector3Macro(AmbientColor,
double);
396 vtkSetVector3Macro(DiffuseColor,
double);
397 vtkGetVector3Macro(DiffuseColor,
double);
404 vtkSetVector3Macro(SpecularColor,
double);
405 vtkGetVector3Macro(SpecularColor,
double);
415 vtkSetMacro(EdgeVisibility, vtkTypeBool);
416 vtkBooleanMacro(EdgeVisibility, vtkTypeBool);
423 vtkSetVector3Macro(EdgeColor,
double);
424 vtkGetVector3Macro(EdgeColor,
double);
433 vtkGetMacro(VertexVisibility, vtkTypeBool);
434 vtkSetMacro(VertexVisibility, vtkTypeBool);
435 vtkBooleanMacro(VertexVisibility, vtkTypeBool);
442 vtkSetVector3Macro(VertexColor,
double);
443 vtkGetVector3Macro(VertexColor,
double);
451 vtkSetVector4Macro(SelectionColor,
double);
452 vtkGetVector4Macro(SelectionColor,
double);
460 vtkSetMacro(SelectionLineWidth,
float);
461 vtkGetMacro(SelectionLineWidth,
float);
469 vtkSetMacro(SelectionPointSize,
float);
470 vtkGetMacro(SelectionPointSize,
float);
478 vtkSetClampMacro(LineWidth,
float, 0, VTK_FLOAT_MAX);
479 vtkGetMacro(LineWidth,
float);
488 vtkSetMacro(LineStipplePattern,
int);
489 vtkGetMacro(LineStipplePattern,
int);
498 vtkSetClampMacro(LineStippleRepeatFactor,
int, 1,
VTK_INT_MAX);
499 vtkGetMacro(LineStippleRepeatFactor,
int);
507 vtkSetClampMacro(PointSize,
float, 0, VTK_FLOAT_MAX);
508 vtkGetMacro(PointSize,
float);
517 vtkGetMacro(BackfaceCulling, vtkTypeBool);
518 vtkSetMacro(BackfaceCulling, vtkTypeBool);
519 vtkBooleanMacro(BackfaceCulling, vtkTypeBool);
528 vtkGetMacro(FrontfaceCulling, vtkTypeBool);
529 vtkSetMacro(FrontfaceCulling, vtkTypeBool);
530 vtkBooleanMacro(FrontfaceCulling, vtkTypeBool);
537 vtkSetStringMacro(MaterialName);
538 vtkGetStringMacro(MaterialName);
546 vtkSetMacro(Shading, vtkTypeBool);
547 vtkGetMacro(Shading, vtkTypeBool);
548 vtkBooleanMacro(Shading, vtkTypeBool);
560 virtual
void AddShaderVariable(const
char*
name,
int numVars,
int* x);
561 virtual
void AddShaderVariable(const
char* name,
int numVars,
float* x);
562 virtual
void AddShaderVariable(const
char* name,
int numVars,
double* x);
574 int v[2] = { v1, v2 };
575 this->AddShaderVariable(name, 2, v);
579 float v[2] = { v1, v2 };
580 this->AddShaderVariable(name, 2, v);
584 double v[2] = { v1, v2 };
585 this->AddShaderVariable(name, 2, v);
589 int v[3] = { v1, v2, v3 };
590 this->AddShaderVariable(name, 3, v);
594 float v[3] = { v1, v2, v3 };
595 this->AddShaderVariable(name, 3, v);
599 double v[3] = { v1, v2, v3 };
600 this->AddShaderVariable(name, 3, v);
609 vtkSetMacro(ShowTexturesOnBackface,
bool);
610 vtkGetMacro(ShowTexturesOnBackface,
bool);
611 vtkBooleanMacro(ShowTexturesOnBackface,
bool);
695 void RemoveTexture(
const char*
name);
700 void RemoveAllTextures();
705 int GetNumberOfTextures();
717 virtual void ReleaseGraphicsResources(
vtkWindow* win);
732 static double ComputeReflectanceFromIOR(
double IORTo,
double IORFrom);
740 static double ComputeIORFromReflectance(
double reflectance,
double ior);
750 double ComputeReflectanceOfBaseLayer();
760 static void ComputeCompositeColor(
double result[3],
double ambient,
const double ambient_color[3],
761 double diffuse,
const double diffuse_color[3],
double specular,
const double specular_color[3]);
764 double AmbientColor[3];
765 double DiffuseColor[3];
766 double SpecularColor[3];
768 double VertexColor[3];
769 double SelectionColor[4] = { 1.0, 0.0, 0.0, 1.0 };
784 double EmissiveFactor[3];
791 float SelectionPointSize = 2.f;
792 float SelectionLineWidth = 2.f;
840 return "Physically based rendering";
void AddShaderVariable(const char *name, float v1, float v2, float v3)
Methods to provide to add shader variables from wrappers.
void SetORMTexture(vtkTexture *texture)
Set the ORM texture.
represents an object (geometry & properties) in a rendered scene
void SetInterpolationToPhong()
Set the shading interpolation method for an object.
abstract base class for most VTK objects
void AddShaderVariable(const char *name, double v)
Methods to provide to add shader variables from wrappers.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Represents an XML element and those nested inside.
vtkTypeBool EdgeVisibility
void AddShaderVariable(const char *name, double v1, double v2, double v3)
Methods to provide to add shader variables from wrappers.
represent surface properties of a geometric object
const char * GetRepresentationAsString()
Return the method of shading as a descriptive character string.
void SetInterpolationToPBR()
Set the shading interpolation method for an object.
void SetInterpolationToFlat()
Set the shading interpolation method for an object.
void AddShaderVariable(const char *name, int v1, int v2, int v3)
Methods to provide to add shader variables from wrappers.
void AddShaderVariable(const char *name, float v)
Methods to provide to add shader variables from wrappers.
abstract specification for renderers
void AddShaderVariable(const char *name, double v1, double v2)
Methods to provide to add shader variables from wrappers.
bool ShowTexturesOnBackface
std::map< std::string, vtkTexture * > MapOfTextures
void SetEmissiveTexture(vtkTexture *texture)
Set the emissive texture.
void SetRepresentationToPoints()
Control the surface geometry representation for the object.
void SetInterpolationToGouraud()
Set the shading interpolation method for an object.
window superclass for vtkRenderWindow
void AddShaderVariable(const char *name, float v1, float v2)
Methods to provide to add shader variables from wrappers.
a simple class to control print indentation
void SetCoatNormalTexture(vtkTexture *texture)
Set the coat normal texture.
void SetBaseColorTexture(vtkTexture *texture)
Set the base color texture.
void SetRepresentationToWireframe()
Control the surface geometry representation for the object.
handles properties associated with a texture map
void SetRepresentationToSurface()
Control the surface geometry representation for the object.
void SetNormalTexture(vtkTexture *texture)
Set the normal texture.
#define VTK_SIZEHINT(...)
void SetAnisotropyTexture(vtkTexture *texture)
Set the anisotropy texture.
void AddShaderVariable(const char *name, int v)
Methods to provide to add shader variables from wrappers.
virtual void BackfaceRender(vtkActor *, vtkRenderer *)
This method renders the property as a backface property.
vtkTypeBool FrontfaceCulling
double AnisotropyRotation
int LineStippleRepeatFactor
std::map< std::string, vtkTexture * > & GetAllTextures()
Returns all the textures in this property and their names.
const char * GetInterpolationAsString()
Return the method of shading as a descriptive character string.
bool RenderPointsAsSpheres
vtkTypeBool VertexVisibility
void AddShaderVariable(const char *name, int v1, int v2)
Methods to provide to add shader variables from wrappers.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
vtkInformation * Information
vtkTypeBool BackfaceCulling
The ShaderProgram uses one or more Shader objects.