You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
4.4 KiB
113 lines
4.4 KiB
2 years ago
|
/*=========================================================================
|
||
|
|
||
|
Program: Visualization Toolkit
|
||
|
Module: $RCSfile: vtkTransformTextureCoords.h,v $
|
||
|
|
||
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
||
|
All rights reserved.
|
||
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
||
|
|
||
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||
|
PURPOSE. See the above copyright notice for more information.
|
||
|
|
||
|
=========================================================================*/
|
||
|
// .NAME vtkTransformTextureCoords - transform (scale, rotate, translate) texture coordinates
|
||
|
// .SECTION Description
|
||
|
// vtkTransformTextureCoords is a filter that operates on texture
|
||
|
// coordinates. It ingests any type of dataset, and outputs a dataset of the
|
||
|
// same type. The filter lets you scale, translate, and rotate texture
|
||
|
// coordinates. For example, by using the the Scale ivar, you can shift
|
||
|
// texture coordinates that range from (0->1) to range from (0->10) (useful
|
||
|
// for repeated patterns).
|
||
|
//
|
||
|
// The filter operates on texture coordinates of dimension 1->3. The texture
|
||
|
// coordinates are referred to as r-s-t. If the texture map is two dimensional,
|
||
|
// the t-coordinate (and operations on the t-coordinate) are ignored.
|
||
|
|
||
|
// .SECTION See Also
|
||
|
// vtkTextureMapToPlane vtkTextureMapToBox vtkTextureMapToCylinder
|
||
|
// vtkTextureMapToSphere vtkThresholdTextureCoords vtkTexture
|
||
|
|
||
|
#ifndef __vtkTransformTextureCoords_h
|
||
|
#define __vtkTransformTextureCoords_h
|
||
|
|
||
|
#include "vtkDataSetAlgorithm.h"
|
||
|
|
||
|
class VTK_GRAPHICS_EXPORT vtkTransformTextureCoords : public vtkDataSetAlgorithm
|
||
|
{
|
||
|
public:
|
||
|
vtkTypeRevisionMacro(vtkTransformTextureCoords,vtkDataSetAlgorithm);
|
||
|
void PrintSelf(ostream& os, vtkIndent indent);
|
||
|
|
||
|
// Description:
|
||
|
// Create instance with Origin (0.5,0.5,0.5); Position (0,0,0); and Scale
|
||
|
// set to (1,1,1). Rotation of the texture coordinates is turned off.
|
||
|
static vtkTransformTextureCoords *New();
|
||
|
|
||
|
// Description:
|
||
|
// Set/Get the position of the texture map. Setting the position translates
|
||
|
// the texture map by the amount specified.
|
||
|
vtkSetVector3Macro(Position,double);
|
||
|
vtkGetVectorMacro(Position,double,3);
|
||
|
|
||
|
// Description:
|
||
|
// Incrementally change the position of the texture map (i.e., does a
|
||
|
// translate or shift of the texture coordinates).
|
||
|
void AddPosition(double deltaR, double deltaS, double deltaT);
|
||
|
void AddPosition(double deltaPosition[3]);
|
||
|
|
||
|
// Description:
|
||
|
// Set/Get the scale of the texture map. Scaling in performed independently
|
||
|
// on the r, s and t axes.
|
||
|
vtkSetVector3Macro(Scale,double);
|
||
|
vtkGetVectorMacro(Scale,double,3);
|
||
|
|
||
|
// Description:
|
||
|
// Set/Get the origin of the texture map. This is the point about which the
|
||
|
// texture map is flipped (e.g., rotated). Since a typical texture map ranges
|
||
|
// from (0,1) in the r-s-t coordinates, the default origin is set at
|
||
|
// (0.5,0.5,0.5).
|
||
|
vtkSetVector3Macro(Origin,double);
|
||
|
vtkGetVectorMacro(Origin,double,3);
|
||
|
|
||
|
// Description:
|
||
|
// Boolean indicates whether the texture map should be flipped around the
|
||
|
// s-axis. Note that the flips occur around the texture origin.
|
||
|
vtkSetMacro(FlipR,int);
|
||
|
vtkGetMacro(FlipR,int);
|
||
|
vtkBooleanMacro(FlipR,int);
|
||
|
|
||
|
// Description:
|
||
|
// Boolean indicates whether the texture map should be flipped around the
|
||
|
// s-axis. Note that the flips occur around the texture origin.
|
||
|
vtkSetMacro(FlipS,int);
|
||
|
vtkGetMacro(FlipS,int);
|
||
|
vtkBooleanMacro(FlipS,int);
|
||
|
|
||
|
// Description:
|
||
|
// Boolean indicates whether the texture map should be flipped around the
|
||
|
// t-axis. Note that the flips occur around the texture origin.
|
||
|
vtkSetMacro(FlipT,int);
|
||
|
vtkGetMacro(FlipT,int);
|
||
|
vtkBooleanMacro(FlipT,int);
|
||
|
|
||
|
protected:
|
||
|
vtkTransformTextureCoords();
|
||
|
~vtkTransformTextureCoords() {};
|
||
|
|
||
|
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
|
||
|
|
||
|
double Origin[3]; //point around which map rotates
|
||
|
double Position[3]; //controls translation of map
|
||
|
double Scale[3]; //scales the texture map
|
||
|
int FlipR; //boolean indicates whether to flip texture around r-axis
|
||
|
int FlipS; //boolean indicates whether to flip texture around s-axis
|
||
|
int FlipT; //boolean indicates whether to flip texture around t-axis
|
||
|
private:
|
||
|
vtkTransformTextureCoords(const vtkTransformTextureCoords&); // Not implemented.
|
||
|
void operator=(const vtkTransformTextureCoords&); // Not implemented.
|
||
|
};
|
||
|
|
||
|
#endif
|