44#include "vtkRenderingCoreModule.h"
56#define VTK_WIREFRAME 1
68class vtkPropertyInternals;
117 vtkGetMacro(Lighting,
bool);
118 vtkSetMacro(Lighting,
bool);
119 vtkBooleanMacro(Lighting,
bool);
129 vtkGetMacro(RenderPointsAsSpheres,
bool);
130 vtkSetMacro(RenderPointsAsSpheres,
bool);
131 vtkBooleanMacro(RenderPointsAsSpheres,
bool);
142 vtkGetMacro(RenderLinesAsTubes,
bool);
143 vtkSetMacro(RenderLinesAsTubes,
bool);
144 vtkBooleanMacro(RenderLinesAsTubes,
bool);
152 vtkGetMacro(Interpolation,
int);
157 const char* GetInterpolationAsString();
165 vtkGetMacro(Representation,
int);
169 const char* GetRepresentationAsString();
178 virtual void SetColor(
double r,
double g,
double b);
181 void GetColor(
double rgb[3]);
182 void GetColor(
double& r,
double& g,
double& b);
198 vtkGetMacro(BaseIOR,
double);
208 vtkSetClampMacro(Metallic,
double, 0.0, 1.0);
209 vtkGetMacro(Metallic,
double);
220 vtkSetClampMacro(Roughness,
double, 0.0, 1.0);
221 vtkGetMacro(Roughness,
double);
231 vtkSetClampMacro(Anisotropy,
double, 0.0, 1.0);
232 vtkGetMacro(Anisotropy,
double);
242 vtkSetClampMacro(AnisotropyRotation,
double, 0.0, 1.0);
243 vtkGetMacro(AnisotropyRotation,
double);
253 vtkGetMacro(CoatIOR,
double);
263 vtkSetClampMacro(CoatRoughness,
double, 0.0, 1.0);
264 vtkGetMacro(CoatRoughness,
double);
274 vtkSetClampMacro(CoatStrength,
double, 0.0, 1.0);
275 vtkGetMacro(CoatStrength,
double);
284 vtkSetVector3Macro(CoatColor,
double);
285 vtkGetVector3Macro(CoatColor,
double);
295 vtkSetClampMacro(CoatNormalScale,
double, 0.0, 1.0);
296 vtkGetMacro(CoatNormalScale,
double);
305 vtkSetMacro(NormalScale,
double);
306 vtkGetMacro(NormalScale,
double);
316 vtkSetClampMacro(OcclusionStrength,
double, 0.0, 1.0);
317 vtkGetMacro(OcclusionStrength,
double);
327 vtkSetVector3Macro(EmissiveFactor,
double);
328 vtkGetVector3Macro(EmissiveFactor,
double);
338 vtkSetVector3Macro(EdgeTint,
double);
339 vtkGetVector3Macro(EdgeTint,
double);
346 vtkSetClampMacro(Ambient,
double, 0.0, 1.0);
347 vtkGetMacro(Ambient,
double);
354 vtkSetClampMacro(Diffuse,
double, 0.0, 1.0);
355 vtkGetMacro(Diffuse,
double);
362 vtkSetClampMacro(Specular,
double, 0.0, 1.0);
363 vtkGetMacro(Specular,
double);
370 vtkSetClampMacro(SpecularPower,
double, 0.0, 128.0);
371 vtkGetMacro(SpecularPower,
double);
379 vtkSetClampMacro(Opacity,
double, 0.0, 1.0);
380 vtkGetMacro(Opacity,
double);
390 vtkSetVector3Macro(AmbientColor,
double);
391 vtkGetVector3Macro(AmbientColor,
double);
399 vtkSetVector3Macro(DiffuseColor,
double);
400 vtkGetVector3Macro(DiffuseColor,
double);
407 vtkSetVector3Macro(SpecularColor,
double);
408 vtkGetVector3Macro(SpecularColor,
double);
426 vtkSetVector3Macro(EdgeColor,
double);
427 vtkGetVector3Macro(EdgeColor,
double);
445 vtkSetVector3Macro(VertexColor,
double);
446 vtkGetVector3Macro(VertexColor,
double);
454 vtkSetVector4Macro(SelectionColor,
double);
455 vtkGetVector4Macro(SelectionColor,
double);
463 vtkSetMacro(SelectionLineWidth,
float);
464 vtkGetMacro(SelectionLineWidth,
float);
472 vtkSetMacro(SelectionPointSize,
float);
473 vtkGetMacro(SelectionPointSize,
float);
482 vtkGetMacro(LineWidth,
float);
491 vtkSetMacro(LineStipplePattern,
int);
492 vtkGetMacro(LineStipplePattern,
int);
502 vtkGetMacro(LineStippleRepeatFactor,
int);
511 vtkGetMacro(PointSize,
float);
540 vtkSetStringMacro(MaterialName);
541 vtkGetStringMacro(MaterialName);
563 virtual
void AddShaderVariable(const
char*
name,
int numVars,
int* x);
564 virtual
void AddShaderVariable(const
char*
name,
int numVars,
float* x);
565 virtual
void AddShaderVariable(const
char*
name,
int numVars,
double* x);
577 int v[2] = { v1, v2 };
578 this->AddShaderVariable(
name, 2, v);
582 float v[2] = { v1, v2 };
583 this->AddShaderVariable(
name, 2, v);
587 double v[2] = { v1, v2 };
588 this->AddShaderVariable(
name, 2, v);
592 int v[3] = { v1, v2, v3 };
593 this->AddShaderVariable(
name, 3, v);
597 float v[3] = { v1, v2, v3 };
598 this->AddShaderVariable(
name, 3, v);
602 double v[3] = { v1, v2, v3 };
603 this->AddShaderVariable(
name, 3, v);
612 vtkSetMacro(ShowTexturesOnBackface,
bool);
613 vtkGetMacro(ShowTexturesOnBackface,
bool);
614 vtkBooleanMacro(ShowTexturesOnBackface,
bool);
764 double diffuse,
const double diffuse_color[3],
double specular,
const double specular_color[3]);
767 double AmbientColor[3];
768 double DiffuseColor[3];
769 double SpecularColor[3];
771 double VertexColor[3];
772 double SelectionColor[4] = { 1.0, 0.0, 0.0, 1.0 };
787 double EmissiveFactor[3];
794 float SelectionPointSize = 2.f;
795 float SelectionLineWidth = 2.f;
843 return "Physically based rendering";
represents an object (geometry & properties) in a rendered scene
a simple class to control print indentation
abstract base class for most VTK objects
represent surface properties of a geometric object
static vtkProperty * New()
Construct object with object color, ambient color, diffuse color, specular color, and edge color whit...
double ComputeReflectanceOfBaseLayer()
For PBR, calculate the reflectance of the base layer depending on the presence of a coat layer.
std::map< std::string, vtkTexture * > MapOfTextures
void SetRepresentationToPoints()
Control the surface geometry representation for the object.
void SetTexture(const char *name, vtkTexture *texture)
Set/Get the texture object to control rendering texture maps.
void SetRepresentationToWireframe()
Control the surface geometry representation for the object.
virtual void SetInformation(vtkInformation *)
Set/Get the information object associated with the Property.
int LineStippleRepeatFactor
double AnisotropyRotation
double * GetColor()
Set the color of the object.
static void ComputeCompositeColor(double result[3], double ambient, const double ambient_color[3], double diffuse, const double diffuse_color[3], double specular, const double specular_color[3])
Computes composite color.
virtual void SetColor(double a[3])
Set the color of the object.
void AddShaderVariable(const char *name, double v1, double v2)
Methods to provide to add shader variables from wrappers.
virtual void BackfaceRender(vtkActor *, vtkRenderer *)
This method renders the property as a backface property.
void SetNormalTexture(vtkTexture *texture)
Set the normal texture.
int GetNumberOfTextures()
Returns the number of textures in this property.
void SetEmissiveTexture(vtkTexture *texture)
Set the emissive texture.
void SetInterpolationToFlat()
Set the shading interpolation method for an object.
void RemoveAllTextures()
Remove all the textures.
void SetBaseColorTexture(vtkTexture *texture)
Set the base color texture.
void SetCoatNormalTexture(vtkTexture *texture)
Set the coat normal texture.
void SetInterpolationToGouraud()
Set the shading interpolation method for an object.
vtkTypeBool BackfaceCulling
void DeepCopy(vtkProperty *p)
Assign one property to another.
vtkTexture * GetTexture(const char *name)
Set/Get the texture object to control rendering texture maps.
void AddShaderVariable(const char *name, double v)
Methods to provide to add shader variables from wrappers.
void SetInterpolationToPBR()
Set the shading interpolation method for an object.
virtual void Render(vtkActor *, vtkRenderer *)
This method causes the property to set up whatever is required for its instance variables.
const char * GetInterpolationAsString()
Return the method of shading as a descriptive character string.
void SetRepresentationToSurface()
Control the surface geometry representation for the object.
void SetInterpolationToPhong()
Set the shading interpolation method for an object.
void AddShaderVariable(const char *name, double v1, double v2, double v3)
Methods to provide to add shader variables from wrappers.
bool RenderPointsAsSpheres
void SetORMTexture(vtkTexture *texture)
Set the ORM texture.
void AddShaderVariable(const char *name, int v1, int v2, int v3)
Methods to provide to add shader variables from wrappers.
virtual void SetColor(double r, double g, double b)
Set the color of the object.
vtkInformation * Information
static double ComputeReflectanceFromIOR(double IORTo, double IORFrom)
For PBR, calculate the reflectance from the refractive index of ingoing and outgoing interfaces.
void AddShaderVariable(const char *name, float v1, float v2, float v3)
Methods to provide to add shader variables from wrappers.
virtual void ReleaseGraphicsResources(vtkWindow *win)
Release any graphics resources that are being consumed by this property.
vtkTypeBool EdgeVisibility
vtkTypeBool VertexVisibility
void AddShaderVariable(const char *name, int 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.
void SetAnisotropyTexture(vtkTexture *texture)
Set the anisotropy texture.
vtkTypeBool FrontfaceCulling
void RemoveTexture(const char *name)
Remove a texture from the collection.
void AddShaderVariable(const char *name, float v1, float v2)
Methods to provide to add shader variables from wrappers.
bool ShowTexturesOnBackface
static double ComputeIORFromReflectance(double reflectance, double ior)
For PBR, calculate the refractive index from the reflectance of the interface and the refractive inde...
virtual void PostRender(vtkActor *, vtkRenderer *)
This method is called after the actor has been rendered.
void AddShaderVariable(const char *name, int v1, int v2)
Methods to provide to add shader variables from wrappers.
std::map< std::string, vtkTexture * > & GetAllTextures()
Returns all the textures in this property and their names.
const char * GetRepresentationAsString()
Return the method of shading as a descriptive character string.
void AddShaderVariable(const char *name, float v)
Methods to provide to add shader variables from wrappers.
abstract specification for renderers
The ShaderProgram uses one or more Shader objects.
handles properties associated with a texture map
window superclass for vtkRenderWindow
Represents an XML element and those nested inside.
#define VTK_SIZEHINT(...)