Public Member Functions

IPainterInterface_V5 Class Reference

This reference page is linked to from the following overview topics: Plug-in Architecture.


Search for all occurrences

Detailed Description

See also:
IPainterCanvasInterface_V5
description
This class is available in Max 7 and higher only

Any plugin that wants to be able to be painted on must sub class from this class or a later version of it.

#include <IPainterInterface.h>

Inheritance diagram for IPainterInterface_V5:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual BOOL  InitializeCallback (ReferenceTarget *canvas)=0
  The canvas passes a pointer of itself to the painter.
virtual BOOL  InitializeNodes (int flags, Tab< INode * > &nodeList)=0
  this loads of the nodes that you want to paint on
virtual BOOL  UpdateMeshes (BOOL updatePointGather)=0
  This forces the quadtree to rebuilt.
virtual BOOL  StartPaintSession ()=0
  This is called when the a canvas wants to start a paint session.
virtual BOOL  EndPaintSession ()=0
  This is called when the a canvas wants to end a paint session.
virtual BOOL  InPaintMode ()=0
  This return whether the user is in the paint mode, so a plugin can determine how to paint the UI paint button.
virtual BOOL  BringUpOptions ()=0
  This brings up the Painter Options dialog that lets the users sets various setting of the painter system.
virtual int *  RetrieveTimeList (int &ct)=0
  This lets you access the time stamp of each sample of a stroke.
virtual BOOL  TestHit (IPoint2 mousePos, Point3 &worldPoint, Point3 &worldNormal, Point3 &localPoint, Point3 &localNormal, Point3 &bary, int &index, INode *node, BOOL &mirrorOn, Point3 &worldMirrorPoint, Point3 &worldMirrorNormal, Point3 &localMirrorPoint, Point3 &localMirrorNormal)=0
  this function lets you hit test against the quad tree given a mouse coord
virtual BOOL  RandomHit (Point3 &worldPoint, Point3 &worldNormal, Point3 &localPoint, Point3 &localNormal, Point3 &bary, int &index, float &strFromFalloff, INode *node, BOOL &mirrorOn, Point3 &worldMirrorPoint, Point3 &worldMirrorNormal, Point3 &localMirrorPoint, Point3 &localMirrorNormal, int tabIndex)=0
  Retrieves a random hit point around the last hit point or a specified hit point within the brush.
virtual BOOL  RandomHitAlongStroke (Point3 &worldPoint, Point3 &worldNormal, Point3 &localPoint, Point3 &localNormal, Point3 &bary, int &index, float &strFromFalloff, INode *node, BOOL &mirrorOn, Point3 &worldMirrorPoint, Point3 &worldMirrorNormal, Point3 &localMirrorPoint, Point3 &localMirrorNormal, int tabIndex)=0
  This will do random hit point along the stroke segment.
virtual BOOL  ClearStroke ()=0
  this clears out all the stroke data for the current stroke
virtual BOOL  AddToStroke (IPoint2 mousePos, BOOL rebuildPointGatherData, BOOL updateViewport)=0
  this adds a hit test to the current stroke
virtual int  GetStrokeCount ()=0
  returns the number of sample points in the current stroke
virtual float *  GetStrokeStr ()=0
  this returns a pointer to an array of floats where each entry is the str of a point sample
virtual float *  GetStrokeRadius ()=0
  this returns a pointer to an array of floats where each entry is the radius of a point sample
virtual Point3 GetStrokePointWorld ()=0
  this returns a pointer to an array of point3s where each entry is the world space hit point of the sample
virtual Point3 GetStrokeNormalWorld ()=0
  this returns a pointer to an array of point3s where each entry is the world space normal of the sample
virtual Point3 GetStrokePointWorldMirror ()=0
  this returns a pointer to an array of point3s where each entry is the world space hit point of the sample after it has been mirrored
virtual Point3 GetStrokeNormalWorldMirror ()=0
  this returns a pointer to an array of point3s where each entry is the world space normal of the sample after it has been mirrored
virtual float *  GetStrokePressure ()=0
  this returns a pointer to an array of floats where each entry is the pressure of a point sample either from a pressure sensitive tablet or from a predefined presssure graph
virtual Point3 GetStrokePointLocal ()=0
  this returns a pointer to an array of point3s where each entry is the local space hit point of the sample
virtual Point3 GetStrokeNormalLocal ()=0
  this returns a pointer to an array of point3s where each entry is the local space normal of the sample
virtual Point3 GetStrokePointLocalMirror ()=0
  this returns a pointer to an array of point3s where each entry is the local space hit point of the sample after it has been mirrored
virtual Point3 GetStrokeNormalLocalMirror ()=0
  this returns a pointer to an array of point3s where each entry is the world space normal of the sample after it has been mirrored
virtual IPoint2 GetStrokeMousePos ()=0
  this returns a pointer to an array of Ipoint2s where each entry is the mouse pos in screen space for the sample
virtual BOOL *  GetStrokeHitList ()=0
  this returns a pointer to an array of s where each entry is whether the sample hit the mesh or not
virtual Point3 GetStrokeBary ()=0
  this returns a pointer to an array of point3s where each entry is the barycentri coords of the sample
virtual int *  GetStrokeIndex ()=0
  this returns a pointer to an array of ints where each entry is the index of the face of the sample
virtual BOOL *  GetStrokeShift ()=0
  this returns a pointer to an array of bools where each entry is the state of the shift of the sample
virtual BOOL *  GetStrokeCtrl ()=0
  this returns a pointer to an array of bools where each entry is the state of the ctrl of the sample
virtual BOOL *  GetStrokeAlt ()=0
  this returns a pointer to an array of bools where each entry is the state of the alt of the sample
virtual INode **  GetStrokeNode ()=0
  this returns a pointer to an array of INode where each entry is the INode of the sample
virtual int *  GetStrokeTime ()=0
  this returns a pointer to an array of ints where each entry is the time stamp of the sample
virtual float  GetStrFromPoint (Point3 point)=0
  given a point in world space it returns the str of that point based on the current stroke
virtual float *  GetPredefineStrStrokeData (int &ct)=0
  Lets you interogate and set the state of the options dialog.
virtual float *  GetPredefineSizeStrokeData (int &ct)=0
  Lets you interogate and set the state of the options dialog.
virtual BOOL  GetBuildNormalData ()=0
  Access to the BuildNormalData property.
virtual void  SetBuildNormalData (BOOL enable)=0
  Access to the BuildNormalData property.
virtual BOOL  GetEnablePointGather ()=0
  Gets the state of point gathering.
virtual void  SetEnablePointGather (BOOL enable)=0
  Turn on/off the point gather.
virtual BOOL  LoadCustomPointGather (int ct, Point3 *points, INode *node)=0
  This lets you set up a custom list of points to weight to override the currentlist.
virtual float *  RetrievePointGatherWeights (INode *node, int &ct)=0
  This retrieves the weight of the points based on the current stroke.
virtual float *  RetrievePointGatherStr (INode *node, int &ct)=0
  This retrieves the strength of the points based on the current stroke.
virtual BOOL *  RetrievePointGatherIsMirror (INode *node, int &ct)=0
  This retrieves the whether the point was affected by a mirror stroke.
virtual Point3 RetrievePointGatherPoints (INode *node, int &ct)=0
  This retrieves the the array of the points.
virtual Point3 RetrievePointGatherNormals (INode *node, int &ct)=0
  This retrieves the the array of the normals.
virtual float *  RetrievePointGatherU (INode *node, int &ct)=0
  This retrieves the the array of the U vals, this is how far along the stroke that point is.
virtual BOOL  GetMirrorEnable ()=0
  returns if the mirror plane is on or off
virtual void  SetMirrorEnable (BOOL enable)=0
  lets you set whether the mirror plane is on/off
virtual Point3  GetMirrorPlaneCenter ()=0
  returns the center of the mirror plane in world space coords
virtual int  GetMirrorAxis ()=0
  returns which mirror axis is active
virtual void  SetMirrorAxis (int dir)=0
  lets you set the mirror axis
virtual float  GetMirrorOffset ()=0
  Returns the mirror offset.
virtual void  SetMirrorOffset (float offset)=0
  Sets the mirror offset.
virtual int  GetTreeDepth ()=0
  Lets you get the quad tree depth.
virtual void  SetTreeDepth (int depth)=0
  Lets you set the quad tree depth.
virtual BOOL  GetUpdateOnMouseUp ()=0
  Lets you get the Update on Mouse Up option.
virtual void  SetUpdateOnMouseUp (BOOL update)=0
  Lets you get the Update on Mouse Up option.
virtual int  GetLagRate ()=0
  These 2 function let you get and set the lag rate.
virtual void  SetLagRate (int lagRate)=0
  These 2 function let you get and set the lag rate.
virtual float  GetMinStr ()=0
  Let you get the min strength for a brush.
virtual void  SetMinStr (float str)=0
  lets you set the min strength for a brush.
virtual float  GetMaxStr ()=0
  lets you get the max strength for a brush.
virtual void  SetMaxStr (float str)=0
  lets you set the max strength for a brush.
virtual float  GetMinSize ()=0
  lets you get the min radius for a brush.
virtual void  SetMinSize (float str)=0
  lets you set the min radius for a brush.
virtual float  GetMaxSize ()=0
  lets you get the max radius for a brush.
virtual void  SetMaxSize (float str)=0
  lets you set the max radius for a brush.
virtual BOOL  GetAdditiveMode ()=0
  Gets the aditive mode.
virtual void  SetAdditiveMode (BOOL enable)=0
  Sets the aditive mode.
virtual ICurve GetFalloffGraph ()=0
  This returns the brush falloff curve if you want to handle the doing the brush falloff yourself.
virtual BOOL  GetDrawRing ()=0
  This lets you get whether the ring is drawn around the hit point.
virtual void  SetDrawRing (BOOL draw)=0
  This lets you set whether the ring is drawn around the hit point.
virtual BOOL  GetDrawNormal ()=0
  This lets you get whether the normal vector is drawn at the hit point.
virtual void  SetDrawNormal (BOOL draw)=0
  This lets you set whether the normal vector is drawn at the hit point.
virtual BOOL  GetDrawTrace ()=0
  This lets you get whether the a line is left behind a stroke as it is drawn.
virtual void  SetDrawTrace (BOOL draw)=0
  This lets you set whether the a line is left behind a stroke as it is drawn.
virtual BOOL  GetPressureEnable ()=0
  let you get whether pressure sensistivity is turned on
virtual void  SetPressureEnable (BOOL enable)=0
  let you set whether pressure sensistivity is turned on
virtual BOOL  GetPressureAffects ()=0
  Get what the pressure of a brush affects.
virtual void  SetPressureAffects (int affect)=0
  Set what the pressure of a brush affects.
virtual BOOL  GetPredefinedStrEnable ()=0
  get whether a predefined str is enabled for a stroke.
virtual void  SetPredefinedStrEnable (BOOL enable)=0
  set whether a predefined str is enabled for a stroke.
virtual BOOL  GetPredefinedSizeEnable ()=0
  get whether a predefined radius is enabled for a stroke.
virtual void  SetPredefinedSizeEnable (BOOL enable)=0
  set whether a predefined radius is enabled for a stroke.
virtual ICurve GetPredefineSizeStrokeGraph ()=0
  get the predefined radius graph set for a stroke.
virtual ICurve GetPredefineStrStrokeGraph ()=0
  get the predefined strength graph set for a stroke.
virtual float  GetNormalScale ()=0
virtual void  SetNormalScale (float scale)=0
virtual BOOL  GetMarkerEnable ()=0
virtual void  SetMarkerEnable (BOOL on)=0
virtual float  GetMarker ()=0
virtual void  SetMarker (float pos)=0
virtual int  GetOffMeshHitType ()=0
  Returns the mesh hit type.
virtual void  SetOffMeshHitType (int type)=0
  Sets the mesh hit type.
virtual float  GetOffMeshHitZDepth ()=0
virtual void  SetOffMeshHitZDepth (float depth)=0
virtual Point3  GetOffMeshHitPos ()=0
virtual void  SetOffMeshHitPos (Point3 pos)=0

Member Function Documentation

virtual BOOL InitializeCallback ( ReferenceTarget canvas ) [pure virtual]

The canvas passes a pointer of itself to the painter.

This is so the painter knows where to send the stroke messages

Parameters:
canvas - is the pointer to the canvas
virtual BOOL InitializeNodes ( int  flags,
Tab< INode * > &  nodeList 
) [pure virtual]

this loads of the nodes that you want to paint on

Anytime you want to add delete a node this must be called flags - not yet implemented does nothing but there to allow flags per node for special conditions nodeList - a table of nodes that you want to paint on

virtual BOOL UpdateMeshes ( BOOL  updatePointGather ) [pure virtual]

This forces the quadtree to rebuilt.

Any time you change a geometry or togopology of a node you passed to the InitializedNodes methode this must be called. Ideally I could listen to the notifyremessage changed and rebuild on that but the since rebuilding the quad tree is inetensive, I leave it up to the canvas as to when to rebuild so we can better control the amount of stack re-evals

Parameters:
updatePointGather - determines whether the pointGather data gets updated also normally if your mesh does not change shape or topology you dont need to update the pointgather. For instance if you rotate a view your quad tree needs to get updated but not the point list
virtual BOOL StartPaintSession ( ) [pure virtual]

This is called when the a canvas wants to start a paint session.

Implemented in IPainterInterface_V7.

virtual BOOL EndPaintSession ( ) [pure virtual]

This is called when the a canvas wants to end a paint session.

virtual BOOL InPaintMode ( ) [pure virtual]

This return whether the user is in the paint mode, so a plugin can determine how to paint the UI paint button.

virtual BOOL BringUpOptions ( ) [pure virtual]

This brings up the Painter Options dialog that lets the users sets various setting of the painter system.

virtual int* RetrieveTimeList ( int &  ct ) [pure virtual]

This lets you access the time stamp of each sample of a stroke.

This lets you look at the acceleration of the mouse as it moves if say you wanted to paint a stroke and use it for an animation path.

virtual BOOL TestHit ( IPoint2  mousePos,
Point3 worldPoint,
Point3 worldNormal,
Point3 localPoint,
Point3 localNormal,
Point3 bary,
int &  index,
INode node,
BOOL &  mirrorOn,
Point3 worldMirrorPoint,
Point3 worldMirrorNormal,
Point3 localMirrorPoint,
Point3 localMirrorNormal 
) [pure virtual]

this function lets you hit test against the quad tree given a mouse coord

Parameters:
mousePos - the position in screen space that you want to hit test agains
worldPoint - the world hit point position
worldNormal - the world hit point normal
localPoint - the local hit point position
localNormal - the local hit point normal
bary - the barycentry coord of the face that was hit
index - the index of the face that was hit
node - the node that was hit
mirrorOn - whether mirroring was on or off
worldMirrorPoint - the world hit point position after it was mirrored
worldMirrorNormal - the world hit point normal after it was mirrored
localMirrorPoint - the local hit point position after it was mirrored
localMirrorNormal - the local hit point normal after it was mirrored
Returns:
TRUE if that point insterects the quad tree
virtual BOOL RandomHit ( Point3 worldPoint,
Point3 worldNormal,
Point3 localPoint,
Point3 localNormal,
Point3 bary,
int &  index,
float &  strFromFalloff,
INode node,
BOOL &  mirrorOn,
Point3 worldMirrorPoint,
Point3 worldMirrorNormal,
Point3 localMirrorPoint,
Point3 localMirrorNormal,
int  tabIndex 
) [pure virtual]

Retrieves a random hit point around the last hit point or a specified hit point within the brush.

Useful if you want to do airbrush type effects or to just sample around the hit point

Parameters:
[out] worldPoint - the world hit point position
[out] worldNormal - the world hit point normal
[out] localPoint - the local hit point position
[out] localNormal - the local hit point normal
[out] bary - the barycentry coord of the face that was hit
[out] index - the index of the face that was hit
[out] strFromFalloff - the strength of the point based on the fall off of the brush
[out] node - the node that was hit
[out] mirrorOn - whether mirroring was on or off
[out] worldMirrorPoint - the world hit point position after it was mirrored
[out] worldMirrorNormal - the world hit point normal after it was mirrored
[out] localMirrorPoint - the local hit point position after it was mirrored
[out] localMirrorNormal - the local hit point normal after it was mirrored
tabIndex - What hit you want to sample around if 0 or less it will hit around the last hit test
Returns:
FALSE if a hit point was not found
virtual BOOL RandomHitAlongStroke ( Point3 worldPoint,
Point3 worldNormal,
Point3 localPoint,
Point3 localNormal,
Point3 bary,
int &  index,
float &  strFromFalloff,
INode node,
BOOL &  mirrorOn,
Point3 worldMirrorPoint,
Point3 worldMirrorNormal,
Point3 localMirrorPoint,
Point3 localMirrorNormal,
int  tabIndex 
) [pure virtual]

This will do random hit point along the stroke segment.

Parameters:
[out] worldPoint - the world hit point position
[out] worldNormal - the world hit point normal
[out] localPoint - the local hit point position
[out] localNormal - the local hit point normal
[out] bary - the barycentry coord of the face that was hit
[out] index - the index of the face that was hit
[out] strFromFalloff - the strength of the point based on the fall off of the brush
[out] node - the node that was hit
[out] mirrorOn - whether mirroring was on or off
[out] worldMirrorPoint - the world hit point position after it was mirrored
[out] worldMirrorNormal - the world hit point normal after it was mirrored
[out] localMirrorPoint - the local hit point position after it was mirrored
[out] localMirrorNormal - the local hit point normal after it was mirrored
tabIndex is what segment you want to sample around if 0 or less it will hit around the last segment
Returns:
FALSE if it does not find a hit
virtual BOOL ClearStroke ( ) [pure virtual]

this clears out all the stroke data for the current stroke

This method is used if you want to do a custom stroke. Say for instance you wanted to just stroke a straight line, by default the painter uses a path stroke. so what you do on the PaintStroke method record the first and last mousePos, clear all the stroke data and then Add your custom stroke to the system.

virtual BOOL AddToStroke ( IPoint2  mousePos,
BOOL  rebuildPointGatherData,
BOOL  updateViewport 
) [pure virtual]

this adds a hit test to the current stroke

This method is used if you want to do a custom stroke. Say for instance you wanted to just stroke a straight line, by default the painter uses a path stroke. so what you do on the PaintStroke method record the first and last mousePos, clear all the stroke data and then Add your custom stroke to the system.

Parameters:
mousePos - the point that want to test to add
rebuildPointGatherData - this determines whether the poing gather data get rebuilt this allows you to delay the building of the data if you are addding mulitple points at once
updateViewport - determines if the viewports get updated after this call
virtual int GetStrokeCount ( ) [pure virtual]

returns the number of sample points in the current stroke

virtual float* GetStrokeStr ( ) [pure virtual]

this returns a pointer to an array of floats where each entry is the str of a point sample

virtual float* GetStrokeRadius ( ) [pure virtual]

this returns a pointer to an array of floats where each entry is the radius of a point sample

virtual Point3* GetStrokePointWorld ( ) [pure virtual]

this returns a pointer to an array of point3s where each entry is the world space hit point of the sample

virtual Point3* GetStrokeNormalWorld ( ) [pure virtual]

this returns a pointer to an array of point3s where each entry is the world space normal of the sample

virtual Point3* GetStrokePointWorldMirror ( ) [pure virtual]

this returns a pointer to an array of point3s where each entry is the world space hit point of the sample after it has been mirrored

virtual Point3* GetStrokeNormalWorldMirror ( ) [pure virtual]

this returns a pointer to an array of point3s where each entry is the world space normal of the sample after it has been mirrored

virtual float* GetStrokePressure ( ) [pure virtual]

this returns a pointer to an array of floats where each entry is the pressure of a point sample either from a pressure sensitive tablet or from a predefined presssure graph

virtual Point3* GetStrokePointLocal ( ) [pure virtual]

this returns a pointer to an array of point3s where each entry is the local space hit point of the sample

virtual Point3* GetStrokeNormalLocal ( ) [pure virtual]

this returns a pointer to an array of point3s where each entry is the local space normal of the sample

virtual Point3* GetStrokePointLocalMirror ( ) [pure virtual]

this returns a pointer to an array of point3s where each entry is the local space hit point of the sample after it has been mirrored

virtual Point3* GetStrokeNormalLocalMirror ( ) [pure virtual]

this returns a pointer to an array of point3s where each entry is the world space normal of the sample after it has been mirrored

virtual IPoint2* GetStrokeMousePos ( ) [pure virtual]

this returns a pointer to an array of Ipoint2s where each entry is the mouse pos in screen space for the sample

virtual BOOL* GetStrokeHitList ( ) [pure virtual]

this returns a pointer to an array of s where each entry is whether the sample hit the mesh or not

the system allows the user to paint off the mesh, where all hitpoint are projected onto a plane based on the last hit point and normal

virtual Point3* GetStrokeBary ( ) [pure virtual]

this returns a pointer to an array of point3s where each entry is the barycentri coords of the sample

virtual int* GetStrokeIndex ( ) [pure virtual]

this returns a pointer to an array of ints where each entry is the index of the face of the sample

virtual BOOL* GetStrokeShift ( ) [pure virtual]

this returns a pointer to an array of bools where each entry is the state of the shift of the sample

virtual BOOL* GetStrokeCtrl ( ) [pure virtual]

this returns a pointer to an array of bools where each entry is the state of the ctrl of the sample

virtual BOOL* GetStrokeAlt ( ) [pure virtual]

this returns a pointer to an array of bools where each entry is the state of the alt of the sample

virtual INode** GetStrokeNode ( ) [pure virtual]

this returns a pointer to an array of INode where each entry is the INode of the sample

virtual int* GetStrokeTime ( ) [pure virtual]

this returns a pointer to an array of ints where each entry is the time stamp of the sample

virtual float GetStrFromPoint ( Point3  point ) [pure virtual]

given a point in world space it returns the str of that point based on the current stroke

virtual float* GetPredefineStrStrokeData ( int &  ct ) [pure virtual]

Lets you interogate and set the state of the options dialog.

this is used to ask the system if a stroke str changes as it is painted the user can set predetermined shapes graphs and attach them to the str of brush based on the position of the in the curve it is. If you are in an interactive mode this data will always be changing so you can use this to get the current str/sizes of the hit points. If you are in a non interactive mode you do not need to call this since all the correct sizes/str are sent to the end stroke arrays. If the user has not specified any predetermined graphs the arrays will be NULL

Parameters:
ct - count of the arrays
virtual float* GetPredefineSizeStrokeData ( int &  ct ) [pure virtual]

Lets you interogate and set the state of the options dialog.

this is used to ask the system if a stroke size changes as it is painted the user can set predetermined shapes graphs and attach them to the size of brush based on the position of the in the curve it is. If you are in an interactive mode this data will always be changing so you can use this to get the current str/sizes of the hit points. If you are in a non interactive mode you do not need to call this since all the correct sizes/str are sent to the end stroke arrays. If the user has not specified any predetermined graphs the arrays will be NULL

Parameters:
ct - count of the arrays
virtual BOOL GetBuildNormalData ( ) [pure virtual]

Access to the BuildNormalData property.

This will build a vertex normal list that you can access through RetrievePointGatherNormals This is by default is off to save memory. Also if you use a custom point list through LoadCustomPointGather no normals will be built since there is no topo data to build them from

Returns:
whether we build normal data or not
virtual void SetBuildNormalData ( BOOL  enable ) [pure virtual]

Access to the BuildNormalData property.

This will build a vertex normal list that you can access through RetrievePointGatherNormals This is by default is off to save memory. Also if you use a custom point list through LoadCustomPointGather no normals will be built since there is no topo data to build them from

Parameters:
enable - Sets whether we build normal data or not
virtual BOOL GetEnablePointGather ( ) [pure virtual]

Gets the state of point gathering.

If this is enabled, the points of the mesh will be used as your points

Returns:
TRUE if point gather is enabled
virtual void SetEnablePointGather ( BOOL  enable ) [pure virtual]

Turn on/off the point gather.

If this is enabled, the points of the mesh will be used as your points param enabled - The new state of the point gather

virtual BOOL LoadCustomPointGather ( int  ct,
Point3 points,
INode node 
) [pure virtual]

This lets you set up a custom list of points to weight to override the currentlist.

for instance if you have a non mesh you will need to do this since by default the point gather uses the mesh points to weight

Parameters:
ct - the number of points that you want to add
points - the points you want to add in world space
node - which node you want to assign them to
virtual float* RetrievePointGatherWeights ( INode node,
int &  ct 
) [pure virtual]

This retrieves the weight of the points based on the current stroke.

Parameters:
node - the node that you want to inspect
[out] ct - the number of points in the array
Returns:
a pointer to an array of weights
virtual float* RetrievePointGatherStr ( INode node,
int &  ct 
) [pure virtual]

This retrieves the strength of the points based on the current stroke.

Parameters:
node - the node that you want to inspect
[out] ct - the number of points in the array
Returns:
a pointer to an array of point strengths
virtual BOOL* RetrievePointGatherIsMirror ( INode node,
int &  ct 
) [pure virtual]

This retrieves the whether the point was affected by a mirror stroke.

Parameters:
node - the node that you want to inspect
[out] ct - the number of points in the array
Returns:
an pointer to an array of bools indicating if points were mirrored
virtual Point3* RetrievePointGatherPoints ( INode node,
int &  ct 
) [pure virtual]

This retrieves the the array of the points.

Parameters:
node - the node that you want to inspect
[out] ct - the number of points in the array
Returns:
a pointer to an array of gather points
virtual Point3* RetrievePointGatherNormals ( INode node,
int &  ct 
) [pure virtual]

This retrieves the the array of the normals.

Parameters:
node - the node that you want to inspect
[out] ct - the number of points in the array
Returns:
An array of normals in local space. Note that these are only valid if you do not use a CustomPointGather
virtual float* RetrievePointGatherU ( INode node,
int &  ct 
) [pure virtual]

This retrieves the the array of the U vals, this is how far along the stroke that point is.

Parameters:
node - the node that you want to inspect
[out] ct - the number of points in the array
Returns:
a pointer to an array of float U values
virtual BOOL GetMirrorEnable ( ) [pure virtual]

returns if the mirror plane is on or off

virtual void SetMirrorEnable ( BOOL  enable ) [pure virtual]

lets you set whether the mirror plane is on/off

virtual Point3 GetMirrorPlaneCenter ( ) [pure virtual]

returns the center of the mirror plane in world space coords

the mirror plane is always aligned to the world axis

Returns:
The center of the mirror plane in world space
virtual int GetMirrorAxis ( ) [pure virtual]

returns which mirror axis is active

Returns:
One of the following values:
0 = x axis
1 = y axis
2 = z axis
virtual void SetMirrorAxis ( int  dir ) [pure virtual]

lets you set the mirror axis

Parameters:
dir - One of the following values:
0 = x axis
1 = y axis
2 = z axis
virtual float GetMirrorOffset ( ) [pure virtual]

Returns the mirror offset.

virtual void SetMirrorOffset ( float  offset ) [pure virtual]

Sets the mirror offset.

virtual int GetTreeDepth ( ) [pure virtual]

Lets you get the quad tree depth.

The deeper the quad tree the more memory you consume, but the more memory you consume (the memory consumption is exponential so be careful)

Returns:
the current quad tree depth
virtual void SetTreeDepth ( int  depth ) [pure virtual]

Lets you set the quad tree depth.

The deeper the quad tree the more memory you consume, but the more memory you consume (the memory consumption is exponential so be careful)

Parameters:
depth - the new quad tree depth
virtual BOOL GetUpdateOnMouseUp ( ) [pure virtual]

Lets you get the Update on Mouse Up option.

When this is enabled you will not get PaintStroke calls. Instead you will get all the points at the end through the endStoke function

Returns:
the current Update on Mouse Up state
virtual void SetUpdateOnMouseUp ( BOOL  update ) [pure virtual]

Lets you get the Update on Mouse Up option.

When this is enabled you will not get PaintStroke calls. Instead you will get all the points at the end through the endStoke function

Parameters:
update - Enables or disables the Update on Mouse Up option state.
virtual int GetLagRate ( ) [pure virtual]

These 2 function let you get and set the lag rate.

When this is enabled you get PaintStroke delayed by the lag rate calls. every x(lagrate) stroke points you willget the strokes.

Returns:
The current lag rate
virtual void SetLagRate ( int  lagRate ) [pure virtual]

These 2 function let you get and set the lag rate.

When this is enabled you get PaintStroke delayed by the lag rate calls. every x(lagrate) stroke points you willget the strokes.

Parameters:
lagRate - The new lagrate
virtual float GetMinStr ( ) [pure virtual]

Let you get the min strength for a brush.

If there is no pressure sensitive device attached only the max str is used

Returns:
The current min strength
virtual void SetMinStr ( float  str ) [pure virtual]

lets you set the min strength for a brush.

If there is no pressure sensitive device attached only the max str is used

Parameters:
str - The new min strength
virtual float GetMaxStr ( ) [pure virtual]

lets you get the max strength for a brush.

If there is no pressure sensitive device attached only the max str is used

Returns:
The current max strength
virtual void SetMaxStr ( float  str ) [pure virtual]

lets you set the max strength for a brush.

If there is no pressure sensitive device attached only the max str is used

Parameters:
str - The new max strength
virtual float GetMinSize ( ) [pure virtual]

lets you get the min radius for a brush.

If there is no pressure sensitive device attached only the max radius is used

Returns:
the current min radius
virtual void SetMinSize ( float  str ) [pure virtual]

lets you set the min radius for a brush.

If there is no pressure sensitive device attached only the max radius is used

Parameters:
str - the new size
virtual float GetMaxSize ( ) [pure virtual]

lets you get the max radius for a brush.

If there is no pressure sensitive device attached only the max radius is used

Returns:
the current max radius
virtual void SetMaxSize ( float  str ) [pure virtual]

lets you set the max radius for a brush.

If there is no pressure sensitive device attached only the max radius is used

Parameters:
str - the new max size
virtual BOOL GetAdditiveMode ( ) [pure virtual]

Gets the aditive mode.

When additive mode is off the weight is absolutely set based on the current stroke hit. Previous stroke data is over written. In Additive mode the strength is added to current strength and is not capped.

Returns:
True if we are in additive mode
virtual void SetAdditiveMode ( BOOL  enable ) [pure virtual]

Sets the aditive mode.

When additive mode is off the weight is absolutely set based on the current stroke hit. Previous stroke data is over written. In Additive mode the strength is added to current strength and is not capped.

Parameters:
enable - True to enable additive mode, false to set absolute
virtual ICurve* GetFalloffGraph ( ) [pure virtual]

This returns the brush falloff curve if you want to handle the doing the brush falloff yourself.

virtual BOOL GetDrawRing ( ) [pure virtual]

This lets you get whether the ring is drawn around the hit point.

See also:
The Color ID defines
virtual void SetDrawRing ( BOOL  draw ) [pure virtual]

This lets you set whether the ring is drawn around the hit point.

See also:
The Color ID defines
virtual BOOL GetDrawNormal ( ) [pure virtual]

This lets you get whether the normal vector is drawn at the hit point.

See also:
The Color ID defines
virtual void SetDrawNormal ( BOOL  draw ) [pure virtual]

This lets you set whether the normal vector is drawn at the hit point.

See also:
The Color ID defines
virtual BOOL GetDrawTrace ( ) [pure virtual]

This lets you get whether the a line is left behind a stroke as it is drawn.

See also:
The Color ID defines
virtual void SetDrawTrace ( BOOL  draw ) [pure virtual]

This lets you set whether the a line is left behind a stroke as it is drawn.

See also:
The Color ID defines
virtual BOOL GetPressureEnable ( ) [pure virtual]

let you get whether pressure sensistivity is turned on

when Pressure is enabled it can affect Str, Radius, Both Str and Radius or Nothing You would nothing fr instance if you wanted to do a custom affect for pressure.

Returns:
TRUE if pressure is enabled
virtual void SetPressureEnable ( BOOL  enable ) [pure virtual]

let you set whether pressure sensistivity is turned on

when Pressure is enabled it can affect Str, Radius, Both Str and Radius or Nothing You would nothing fr instance if you wanted to do a custom affect for pressure.

Parameters:
enable - TRUE to enable pressure sensitivity
virtual BOOL GetPressureAffects ( ) [pure virtual]

Get what the pressure of a brush affects.

You can effect Str. Radius, Str and Radius or None

See also:
See the Pressure defines in IPainterInterface.h
virtual void SetPressureAffects ( int  affect ) [pure virtual]

Set what the pressure of a brush affects.

You can effect Str. Radius, Str and Radius or None

Parameters:
affect - One of the Pressure defines in IPainterInterface.h
virtual BOOL GetPredefinedStrEnable ( ) [pure virtual]

get whether a predefined str is enabled for a stroke.

A predefined str stroke lets the user graph the str of stroke over the length of stroke

virtual void SetPredefinedStrEnable ( BOOL  enable ) [pure virtual]

set whether a predefined str is enabled for a stroke.

A predefined str stroke lets the user graph the str of stroke over the length of stroke

virtual BOOL GetPredefinedSizeEnable ( ) [pure virtual]

get whether a predefined radius is enabled for a stroke.

A predefined radius stroke lets the user graph the radius of stroke over the length of stroke

virtual void SetPredefinedSizeEnable ( BOOL  enable ) [pure virtual]

set whether a predefined radius is enabled for a stroke.

A predefined radius stroke lets the user graph the radius of stroke over the length of stroke

virtual ICurve* GetPredefineSizeStrokeGraph ( ) [pure virtual]

get the predefined radius graph set for a stroke.

A predefined radius stroke lets the user graph the radius of stroke over the length of stroke

virtual ICurve* GetPredefineStrStrokeGraph ( ) [pure virtual]

get the predefined strength graph set for a stroke.

A predefined strength stroke lets the user graph the strength of stroke over the length of stroke

virtual float GetNormalScale ( ) [pure virtual]
virtual void SetNormalScale ( float  scale ) [pure virtual]
virtual BOOL GetMarkerEnable ( ) [pure virtual]
virtual void SetMarkerEnable ( BOOL  on ) [pure virtual]
virtual float GetMarker ( ) [pure virtual]
virtual void SetMarker ( float  pos ) [pure virtual]
virtual int GetOffMeshHitType ( ) [pure virtual]

Returns the mesh hit type.

Returns:
One of the following values:
0 = creates a plance based on your last hit point and normal
1 = a zdepth into the screen
2 = a point in world space aligned to current view
virtual void SetOffMeshHitType ( int  type ) [pure virtual]

Sets the mesh hit type.

Parameters:
type - One of the following values:
0 = creates a plance based on your last hit point and normal
1 = a zdepth into the screen
2 = a point in world space aligned to current view
virtual float GetOffMeshHitZDepth ( ) [pure virtual]
virtual void SetOffMeshHitZDepth ( float  depth ) [pure virtual]
virtual Point3 GetOffMeshHitPos ( ) [pure virtual]
virtual void SetOffMeshHitPos ( Point3  pos ) [pure virtual]

IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5
IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5 IPainterInterface_V5