This is CX3DEnvmapShader.rtf in view mode; [Download] [Up]
intuitiv'3d API documentation Copyright ©1993 by Cub'x SystÜmes. All Rights Reserved.
CX3DEnvmapShader
Inherits From: CX3DShader : ObjectView : View : Responder : Object
Declared In: i3d/CX3DEnvmapShader.h
Class Description
A CX3DEnvmap shader is an abstract superclass that implements the pre-rendering necessary to make an environment map for one of shader's parameters. If you write with the shading language a new shader that uses environment mapping, you just have to make a subclass of CX3DEnvmapShader and overload the method - init and - (CXArg*) environMapArg
Instance Variables
char *envMapBuff;
BOOL shouldUseEnvMap;
float detailLevel;
envMapBuff This variable is not saved and contains the disk path of the temporary file used to store the environment map itself.
shouldUseEnvMap This boolean value describes if the user wants the environment map features or not.
detailLevel This float number is between 0 and 100 and defines the precision of the pre-rendering process.
Method Types
Initializing, defining, freeing and copying
+ exportedVariable
- init
- initParametersFromShader:
- free
- copy
- shouldUseTextcoord
Rendering
- preRender:
- postRender:
Attributes and inspector
- setUseEnvmap:
- shouldUseEnvMap
- setDetailLevel:
- detailLevel
- inspectorClass
Facilities
- convertTranslation:forObject:
Archiving
- awake
Method implemented by the subclass
- environMapArg
Class Methods
exportedVariable
+ (ExportedVariable*) exportedVariable
This method returns a description of instance variable that must be saved.
See also: ExportedVariable.rtf in the Functions folder.
Instance Methods
awake
- awake
Used during unarchiving to initialize static variables for the Cell class. Returns self.
convertTranslation:forObject
- convertTranslation:(float*) p forObject: anObject
This method converts the point p inside anObject coordinate system into the world coordinate system.
copy
- copy
Duplicates the receiver. Return the new instance.
detailLevel
- (float) detailLevel
Returns the current value of the detailLevel instance variable. The detail level controls the size and the shading rate of the environment map. detailLevel value is a number between 0 and 100 %. This method is used by the CX3DEnvmapShaderInspector instance.
See also: - setDetailLevel:, CX3DEnvmapShaderInspector class.
environMapArg
- (CXArg*) environMapArg
This is the subclass responsibility to implement this method. It should returns the address of the CXArg that needs the environment map. The arg instance variable contains all shader arguments and is inherited from CX3DShader.
For example, if the third shader parameter needs the environ map, the environMapArg method will be:
- (CXArg*) environMapArg
{
return &arg[2];
}
See also: CX3DShader class documentation, Shiny.m in the Examples/AdvancedObject directory.
free
- free
Free the memory used by the receiver.
init
- init
Initializes and returns the receiver, a new CX3DEnvmapShader instance. It is the subclass responsibility to call the method initWithShaderClassName: in the init method with the shader used as argument. Since initWithShaderClassName: call init, you should make a test with an instance variable to stop the recursive call.
See also: - initWithShaderClassName: CX3DShader class documentation Shiny.m in the Examples/AdvancedObject directory
initParametersFromShader:
- initParametersFromShader: anObject
This method initialize shader's parameters (the arg array) with values of anObject. anObject should be an instance of the same class than the receiver.
inspectorClass
- inspectorClass
This method returns the class id that should be used as the class's inspector of the shader. This method currently returns CX3DEnvmapShaderInspector.
See also: CX3DEnvmapShaderInspector class.
postRender:
- postRender: aDisplayer
This method is called by the rendering pipeline to allow the object to free any memory allocated by the preRender: method or to erase any file created by the preRender: method. The postRender:'s implementation of CX3DEnvmapShader just erases the environment map file.
See also:The file Concepts/Rendering.rtf
preRender:
- preRender: aDisplayer
This method is called by the rendering pipeline to allow the object to perform its pre-rendering operations. The current implementation of preRender for CX3DEnvmapShader is to calculate the environment map if need.
See also: The file Concepts/Rendering.rtf
setDetailLevel:
- setDetailLevel: (float) aFloat
This method set the value of the detailLevel instance variable. This method is called by the CX3DEnvmapShaderInspector instance.
See also: CX3DEnvmapShaderInspector class, - detailLevel
setUseEnvMap:
- setUseEnvMap:(BOOL) aFlag
This method set whether the shader will calculate an environment map shader or not. This method just sets the shouldUseEnvMap instance variable. This method is called by the CX3DEnvmapShaderInspector instance.
See also: CX3DEnvmapShaderInspector class, - (BOOL) useEnvMap
shouldUseEnvMap
- (BOOL) shouldUseEnvMap
This method returns the value of the shouldUseEnvMap instance variable. This method is called by the CX3DEnvmapShaderInspector instance.
See also: CX3DEnvmapShaderInspector class, - setUseEnvMap
shouldUseTextCoord
- (BOOL) shouldUseTextCoord
This method returns allways YES. This method only exists for backward compatibility.
See also: CX3DShader class
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.