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.
		
		
		
		
		
			
		
			
				
					
					
						
							104 lines
						
					
					
						
							3.9 KiB
						
					
					
				
			
		
		
	
	
							104 lines
						
					
					
						
							3.9 KiB
						
					
					
				| /*=========================================================================
 | |
| 
 | |
|   Program:   Visualization Toolkit
 | |
|   Module:    $RCSfile: vtkTextureMapToCylinder.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 vtkTextureMapToCylinder - generate texture coordinates by mapping points to cylinder
 | |
| // .SECTION Description
 | |
| // vtkTextureMapToCylinder is a filter that generates 2D texture coordinates
 | |
| // by mapping input dataset points onto a cylinder. The cylinder can either be
 | |
| // user specified or generated automatically. (The cylinder is generated 
 | |
| // automatically by computing the axis of the cylinder.)  Note that the
 | |
| // generated texture coordinates for the s-coordinate ranges from (0-1) 
 | |
| // (corresponding to angle of 0->360 around axis), while the mapping of 
 | |
| // the t-coordinate is controlled by the projection of points along the axis.
 | |
| //
 | |
| // To specify a cylinder manually, you must provide two points that
 | |
| // define the axis of the cylinder. The length of the axis will affect the
 | |
| // t-coordinates.
 | |
| // 
 | |
| // A special ivar controls how the s-coordinate is generated. If PreventSeam
 | |
| // is set to true, the s-texture varies from 0->1 and then 1->0 (corresponding
 | |
| // to angles of 0->180 and 180->360).
 | |
| 
 | |
| // .SECTION Caveats
 | |
| // Since the resulting texture s-coordinate will lie between (0,1), and the
 | |
| // origin of the texture coordinates is not user-controllable, you may want
 | |
| // to use the class vtkTransformTexture to linearly scale and shift the origin
 | |
| // of the texture coordinates.
 | |
| 
 | |
| // .SECTION See Also
 | |
| // vtkTextureMapToPlane vtkTextureMapToSphere vtkTextureMapToBox
 | |
| // vtkTransformTexture vtkThresholdTextureCoords
 | |
| 
 | |
| #ifndef __vtkTextureMapToCylinder_h
 | |
| #define __vtkTextureMapToCylinder_h
 | |
| 
 | |
| #include "vtkDataSetAlgorithm.h"
 | |
| 
 | |
| class VTK_GRAPHICS_EXPORT vtkTextureMapToCylinder : public vtkDataSetAlgorithm 
 | |
| {
 | |
| public:
 | |
|   vtkTypeRevisionMacro(vtkTextureMapToCylinder,vtkDataSetAlgorithm);
 | |
|   void PrintSelf(ostream& os, vtkIndent indent);
 | |
| 
 | |
|   // Description:
 | |
|   // Create object with cylinder axis parallel to z-axis (points (0,0,-0.5) 
 | |
|   // and (0,0,0.5)). The PreventSeam ivar is set to true. The cylinder is 
 | |
|   // automatically generated.
 | |
|   static vtkTextureMapToCylinder *New();
 | |
| 
 | |
|   // Description:
 | |
|   // Specify the first point defining the cylinder axis,
 | |
|   vtkSetVector3Macro(Point1,double);
 | |
|   vtkGetVectorMacro(Point1,double,3);
 | |
| 
 | |
|   // Description:
 | |
|   // Specify the second point defining the cylinder axis,
 | |
|   vtkSetVector3Macro(Point2,double);
 | |
|   vtkGetVectorMacro(Point2,double,3);
 | |
| 
 | |
|   // Description:
 | |
|   // Turn on/off automatic cylinder generation. This means it automatically
 | |
|   // finds the cylinder center and axis.
 | |
|   vtkSetMacro(AutomaticCylinderGeneration,int);
 | |
|   vtkGetMacro(AutomaticCylinderGeneration,int);
 | |
|   vtkBooleanMacro(AutomaticCylinderGeneration,int);
 | |
| 
 | |
|   // Description:
 | |
|   // Control how the texture coordinates are generated. If PreventSeam is
 | |
|   // set, the s-coordinate ranges from 0->1 and 1->0 corresponding to the
 | |
|   // angle variation from 0->180 and 180->0. Otherwise, the s-coordinate
 | |
|   // ranges from 0->1 from 0->360 degrees.
 | |
|   vtkSetMacro(PreventSeam,int);
 | |
|   vtkGetMacro(PreventSeam,int);
 | |
|   vtkBooleanMacro(PreventSeam,int);
 | |
| 
 | |
| protected:
 | |
|   vtkTextureMapToCylinder();
 | |
|   ~vtkTextureMapToCylinder() {};
 | |
| 
 | |
|   int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
 | |
| 
 | |
|   double Point1[3];
 | |
|   double Point2[3];
 | |
|   int AutomaticCylinderGeneration;
 | |
|   int PreventSeam;
 | |
| 
 | |
| private:
 | |
|   vtkTextureMapToCylinder(const vtkTextureMapToCylinder&);  // Not implemented.
 | |
|   void operator=(const vtkTextureMapToCylinder&);  // Not implemented.
 | |
| };
 | |
| 
 | |
| #endif
 | |
| 
 | |
| 
 | |
| 
 |