intuitiv'3d API documentation Copyright ã1993 by Cub'x SystÜmes. All Rights Reserved.

Description

This documentation decsribes the methods that you might call or overload when using classes CX3DObject or CX3DNode. Only methods that you can use or overload in your own subclasses are described. Other methods are not documented and are subject to change.

Method Types

Subclass description	
	+ alloc
	+ exportedVariable
	+ exportedVariableFor:
	- isAVolume
	- isALight

Shaders, colors and opacity
	- setColor:
	- color
	- setOpacity:
	- opacity
	- setShadingRate:
	- shadingRate
	- setUseLocalShadingRate:
	- useLocalShadingRate
	- setInterpolation:
	- interpolation
	- setSurfaceShader:
	- surfaceShader
	- setDisplacementShader:
	- displacementShader
	- setAreaLightShader
	- areaLightShader
	- setAtmosphereShader
	- atmosphereShader
	- (BOOL) willAcceptShader

Quick renderman display options
	- setSurface:
	- surface
	- setPrecision:
	- precision

Object visibility
	- setPhotoVisible:
	- photoVisible
	- setQuickVisible
	- quickVisible
	- setVisible:
	- visible

Object rendering
	- preRender
	- postRender
	- render

Conversion 
	- convertWorldPointsToObject:count:
	- convertPointsToWorld:count:

Inspectors 
	- attributeInspClass
	- transformationInspClass
	- shadingInspClass
	- shadersInspClass

Archiving
	- read:
	- write:
	- awake

Miscellaneous
	- shape
	- calcSum

Class Methods
alloc
	+ alloc
This factory method allocates a new instance. Returns the new instance. You don't have to overload this method. You'll want to call - init on the instance returned by + alloc. 

See also: - init (CX3DObject or CX3DNode) 

exportedVariable
	+ (ExportedVariable*) exportedVariable
This method returns a description of instance variable that must be saved or loaded.
 
See also: ExportedVariable.rtf in the Functions folder. 

exportedVariableFor:
	+ (ExportedVariable*) exportedVariableFor:(long) version
This method returns a description of instance variable that must be saved or loaded according to the version of the class.
 
See also: ExportedVariable.rtf in the Functions folder. 

Instance Methods
areaLightShader
	- areaLightShader
Returns the area light shader used by the receiver.

See also: - setAreaLightShader

atmosphereShader
	- atmosphereShader
Returns the atmosphere shader used by the receiver.

See also: - setAtmosphereShader

attributeInspClass
	- attributeInspClass
This method returns the class id of the attribute inspector that you want to use with your instance. The default implementation of this method returns nil.

See also: - transformationInspClass,  - shadingInspClass, - shadersInspClass

awake
	- awake
This method is called just after unarchiving an object. If you want to initialize some unsaved instance variable, you have to overload this method. Always call [super awake] in your implementation. 

See also: - read , - write 

calcSum
	- (unsigned int) calcSum
This method is used by intuitiv'3d to discover if a scene has changed. The default implementation of this method make a sum of all instance variable. If your new subclass have some id instance variable, you should overload this method to count that instance variable contents.

color
	- (NXColor) color
Returns the default color used by the object's surface shader.

See also: - setColor 

convertPointsToWorld:count
	- convertPointsToWorld:(RtPoint*) p count: (unsigned int) count
This method converts 3D points inside the p array from the receiver space coordinate to the world space coordinate.
count is the number of point inside the p array.

See also: - convertWorldPointsToObject:count: 

convertWorldPointsToObject:count
	- convertWorldPointsToObject:(RtPoint*) p count: (unsigned int) count
This method converts 3D points inside the p array from the world space coordinate to the receiver space coordinate.
count is the number of point inside the p array.

See also: - convertPointsToWorld:count: 

displacementShader
	- displacementShader
Returns the displacement shader used by the receiver.

See also: - setDisplacementShader

isALight
	- (BOOL) isALight
Return YES if the instance is a light. An instance is a light if it provides an implementation of - illuminate. The only subclass that overload - isALight is CX3DLightSource. The default implementation always returns NO.

isAVolume
	- (BOOL) isAVolume
Returns YES if the instance is a volume. An instance is a volume its - render method uses a RiSolidBegin() function call. The default implementation return always NO.

interpolation
	- (BOOL) interpolation
Returns INTER_SMOOTH if the interpolation is smooth and INTER_CONSTANT if the interpolation is faceted. 

See also: - setInterpolation 

opacity
	- (NXColor) opacity
Return the default opacity used by the object's surface shader. An opacity in Renderman Language is described with a color. White is opaque, Black is transparent. 

See also: - setOpacity 

photoVisible
	- (BOOL) photoVisible
Returns YES if the receiver is to be rendered when rendering with photorealistic renderman.

See also: - setPhotoVisible, - setQuickVisible:, - quickVisible, setVisible, visible

postRender
	- postRender: aDisplayer
This method is called by the rendering pipeline to allow the receiver to free any memory allocated by the preRender: method or to erase any file created by the preRender: method. The default implementation of postRender: does nothing.

See also: The file Concepts/Rendering.rtf , - preRender, - render

precision
	- (int) precision
Returns the precision used by the receiver. The precision could be poor, low, medium, high and default.

See also: - setPrecision,  CX3DObjectAndNode.rtf in the TypesAndConstants folder

preRender
	- preRender: aDisplayer
This method is called by the rendering pipeline to allow the receiver to perform its pre-rendering operations. The default implementation of - preRender does nothing. aDisplayer is the Displayer instance that manages the rendering.

See also: The file Concepts/Rendering.rtf , - postRender: , - render

quickVisible
	- (BOOL) quickVisible
Returns YES if the receiver is to be rendered when rendering with quick Renderman.

See also: - setPhotoVisible, - photoVisible:, - setQuickVisible, setVisible, visible

read
	- read:(NXTypedStream*) stream
This method is used by the archiving system. The default implementation of this method call the evReadVariableForObject() function. You will only have to overload this method if your instance variables cannot be managed by the exported variable features. 

See also: ExportedVariable.rtf in the Functions folder., - write, - awake 

render
	- render
The render method is called by the rendering pipeline to ask the receiver to display its shape using the Renderman interface . The default implementation of this method manages shaders and display option. It returns self if the subclass version should perform its drawing and nil otherwise.  

See also: - preRender: , -postRender

 setAreaLightShader:
	- setAreaLightShader: aShader
This method sets the area light shader used by the receiver. aShader should be a kind of CX3DShader instance and a light shader. The old shader is freed and aShader is duplicated.

See also: - areaLightShader 

setAtmosphereShader:
	- setAtmosphereShader: aShader
This method sets the atmosphere shader used by the receiver. aShader should be a kind of CX3DShader instance and an atmosphere shader. The old shader is freed and aShader is duplicated.

See also: - atmosphereShader 

setColor:
	- setColor:(NXColor) aColor
This method sets the default color used by the object's surface shader.

See also: - color 

setDisplacementShader:
	- setDisplacementShader: aShader
This method sets the displacement shader used by the receiver. aShader should be a kind of CX3DShader instance and a displacement shader. The old shader is freed and aShader is duplicated.

See also: - displacementShader 

setInterpolation:
	- setInterpolation: (BOOL) anInterpolation
If anInterpolation  is equal to INTER_SMOOTH, the interpolation will be smooth, otherwise the interpolation will be faceted. 

See also: - interpolation 

setOpacity:
	- setOpacity:(NXColor) aColor
This method sets the default opacity used by the object's surface shader.

See also: - opacity

setPhotoVisible:
	- setPhotoVisible:(BOOL) aFlag
If aFlag is equal to YES, the receiver will be rendered when rendering with photorealistic Renderman. If aFlag is equal to NO, the receiver will be not rendered with photorealistic Renderman.

See also: - photoVisible, - setQuickVisible:, - quickVisible , - setVisible, - visible

setQuickVisible:
	- setQuickVisible:(BOOL) aFlag
If aFlag is equal to YES, the receiver will be rendered when rendering with quick Renderman. If aFlag is equal to NO, the receiver will be not rendered with quick Renderman.

See also: - photoVisible, - setPhotoVisible:, - quickVisible , - setVisible, - visible

setPrecision:
	- setPrecision:(int) aPrecision
This method sets the precision used by the instance. The precision could be poor, low, medium, high and default.

See also: - precision,  CX3DObjectAndNode.rtf in the TypesAndConstants folder.

setShadingRate:
	- setShadingRate:(float) aValue
This method set the shading rate value (as used by RiShadingRate()) used if the local shading rate is enabled.

See also: - shadingRate, - setUseLocalShadingRate, - useLocalShadingRate

setSurface:
	- setSurface: (int) aSurface
Set the surface type used by the instance. The surface type could be point cloud, wireframe, faceted, smooth, bounding box and "as is". 

See also: - surface, CX3DObjectAndNode.rtf in the TypesAndConstants folder.

setSurfaceShader:
	- setSurfaceShader: aShader
This method sets the surface shader used by the receiver. aShader should be a kind of CX3DShader instance and a surface shader. The old shader is freed and aShader is duplicated.

See also: - surfaceShader 

setUseLocalShadingRate:
	- setUseLocalShadingRate:(BOOL) aFlag
This method enables or disables the local shading rate feature. If aFlag is equal to YES, the object uses the shading rate value given by - setShadingRate. Otherwise, the global shading rate value is used.

See also: - setShadingRate, - shadingRate, - useLocalShadingRate 

setVisible:
	- setVisible: (BOOL) aFlag
Call - setPhotoVisible and - setQuickVisible with aFlag as argument.

See also: - photoVisible, - setPhotoVisible:, - quickVisible , - setQuickVisible, - visible 

shadingInspClass
	- shadingInspClass
This method returns the class id of the shading (labeled display) inspector that you want to use with your instance. The default implementation of this method returns a default and internal inspector.

See also: - attributeInspClass,  - transformationInspClass, - shadersInspClass 

shadingRate
	- (float) shadingRate
This method returns the shading rate value (as used by RiShadingRate()) used if the local shading rate is enabled.

See also: - setShadingRate, - setUseLocalShadingRate, - useLocalShadingRate 

shadersInspClass
	- shadersInspClass
This method returns the class id of the shaders inspector that you want to use with your instance. The default implementation of this method returns a default and internal inspector.

See also: - attributeInspClass,  - transformationInspClass, - shadingInspClass 

surface
	- (int) surface
Returns the surface type used by the instance. The surface type could be point cloud, wireframe, faceted, smooth, bounding box and "as is".

See also: - setSurface:, CX3DObjectAndNode.rtf in the TypesAndConstants folder. 

surfaceShader
	- surfaceShader
Returns the surface shader used by the receiver.

See also: - setSurfaceShader

shape
	- shape
This method returns the N3DShape instance used for the receiver. This is a chance for you to use a 3Dkit method that is not implemented by intuitiv'3d.

See also:  N3DShape (3DKit)

transformationInspClass
	- transformationInspClass
This method returns the class id of the transformation inspector that you want to use with your instance. The default implementation of this method returns a default and internal inspector.

See also: - attributeInspClass,  - shadingInspClass, - shadersInspClass 

useLocalShadingRate
	- (BOOL) useLocalShadingRate
This method returns YES if the local shading rate feature is enabled, NO otherwise.

See also: - setShadingRate, - shadingRate, - setUseLocalShadingRate 

visible
	- (BOOL) visible
This method should be called only when rendering. An instance is rendered inside the following methods:
	- render
	- preRender
	- postRender
	- illuminate (CX3DLightSource)

If the rendering is done with quick Renderman, this method returns [self quickVisible] otherwise this method returns [self photoVisible].

See also: - photoVisible, - setPhotoVisible:, - quickVisible , - setQuickVisible, - setVisible 

willAcceptShader
	- (BOOL) willAcceptShader
You can overload this method. When a shader is about to be given to an object, this method is called to know if the receiver can manage it. The default implementation of this method returns YES for a surface, displacement and area light shader and NO otherwise. 

write
	- write:(NXTypedStream*) stream
This method is used by the archiving system. The default implementation of this method calls the evWriteVariableForObject() function. You have to overload this method only if your instance variables cannot be managed by the exported variable features. 

See also: ExportedVariable.rtf in the Functions folder., - read, - awake