Public Member Functions

IPainterCanvasInterface_V5 Class Reference

Search for all occurrences

Detailed Description

See also:
Class IPainterInteface_V5
Description:
This is the Max5 version of a PainterCanvas. Any plugin that wants to be able to be painted on must sub class from this class or a later version of it. Basically this calls contains all the methods that deal with a paint stroke.

#include <IPainterInterface.h>

Inheritance diagram for IPainterCanvasInterface_V5:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual BOOL  StartStroke ()=0
  This is called when the user start a pen stroke.
virtual BOOL  PaintStroke (BOOL hit, IPoint2 mousePos, Point3 worldPoint, Point3 worldNormal, Point3 localPoint, Point3 localNormal, Point3 bary, int index, BOOL shift, BOOL ctrl, BOOL alt, float radius, float str, float pressure, INode *node, BOOL mirrorOn, Point3 worldMirrorPoint, Point3 worldMirrorNormal, Point3 localMirrorPoint, Point3 localMirrorNormal)=0
  This is called as the user strokes across the mesh or screen with the mouse down.
virtual BOOL  EndStroke ()=0
  This is called as the user ends a strokes when the users has it set to always update.
virtual BOOL  EndStroke (int ct, BOOL *hit, IPoint2 *mousePos, Point3 *worldPoint, Point3 *worldNormal, Point3 *localPoint, Point3 *localNormal, Point3 *bary, int *index, BOOL *shift, BOOL *ctrl, BOOL *alt, float *radius, float *str, float *pressure, INode **node, BOOL mirrorOn, Point3 *worldMirrorPoint, Point3 *worldMirrorNormal, Point3 *localMirrorPoint, Point3 *localMirrorNormal)=0
  This is called as the user ends a strokes when the users has it set to update on mouse up only.
virtual BOOL  CancelStroke ()=0
  This is called as the user cancels a stroke by right clicking.
virtual BOOL  SystemEndPaintSession ()=0
  This is called when the painter want to end a paint session for some reason.
virtual void  PainterDisplay (TimeValue t, ViewExp *vpt, int flags)=0
  this is called when the painter updates the view ports this will let you do custom drawing if you need to

Member Function Documentation

virtual BOOL StartStroke ( ) [pure virtual]

This is called when the user start a pen stroke.

virtual BOOL PaintStroke ( BOOL  hit,
IPoint2  mousePos,
Point3  worldPoint,
Point3  worldNormal,
Point3  localPoint,
Point3  localNormal,
Point3  bary,
int  index,
BOOL  shift,
BOOL  ctrl,
BOOL  alt,
float  radius,
float  str,
float  pressure,
INode node,
BOOL  mirrorOn,
Point3  worldMirrorPoint,
Point3  worldMirrorNormal,
Point3  localMirrorPoint,
Point3  localMirrorNormal 
) [pure virtual]

This is called as the user strokes across the mesh or screen with the mouse down.

This only gets called if the interactive mode is off (the user has turned off Update on Mouse Up)

Parameters:
hit - if this is a hit or not, since the user can paint off a mesh
mousePos - this is mouse coords of the current hit in view space
worldPoint - this is the hit point on the painted mesh in world space
worldNormal - this is the normal of the hit point on the painted mesh in world space
localPoint - this is the hit point on the painted mesh in local space of the mesh that was hit
localNormal - this is the normal of the hit point on the painted mesh in local space of the mesh that was hit
bary - this the barcentric coords of the hit point based on the face that was hit this may or may not be valid depending on the state of the stack. For instance if a paint modifier was below a MeshSmooth, the barycentric coords would be based on the MeshSmooth'ed mesh and not the mesh at the point of the paint modifier
index - the index of the face that was hit. See the warning in Point3 bary above.
shift,ctrl,alt - the state of the shift, alt, and ctrl keys when the point was hit
radius - of the radius of the brush when the point was hit, this is after all modifiers have been applied like pressure or predefined radius etc
str - of the strength of the brush when the point was hit, this is after all modifiers have been applied like pressure or predefined radius etc
pressure - if a pressure sensitive tablet is used this value will be the pressure of the stroke ranging from 0 to 1
node - this node that got hit
mirrorOn - whther the user had mirror on for the stroke, you can ignore the next for params if false
worldMirrorPoint - the mirrored world stroke pos
worldMirrorNormal - the mirrored world stroke normal
localMirrorPoint - the mirros local stroke pos
localMirrorNormal - the mirros local stroke normal
virtual BOOL EndStroke ( ) [pure virtual]

This is called as the user ends a strokes when the users has it set to always update.

virtual BOOL EndStroke ( int  ct,
BOOL *  hit,
IPoint2 mousePos,
Point3 worldPoint,
Point3 worldNormal,
Point3 localPoint,
Point3 localNormal,
Point3 bary,
int *  index,
BOOL *  shift,
BOOL *  ctrl,
BOOL *  alt,
float *  radius,
float *  str,
float *  pressure,
INode **  node,
BOOL  mirrorOn,
Point3 worldMirrorPoint,
Point3 worldMirrorNormal,
Point3 localMirrorPoint,
Point3 localMirrorNormal 
) [pure virtual]

This is called as the user ends a strokes when the users has it set to update on mouse up only.

the canvas gets a list of all points, normals etc instead of one at a time

Parameters:
ct - the number of elements in the following arrays
everythingElse - see PaintStroke() these are identical except they are arrays of values
virtual BOOL CancelStroke ( ) [pure virtual]

This is called as the user cancels a stroke by right clicking.

virtual BOOL SystemEndPaintSession ( ) [pure virtual]

This is called when the painter want to end a paint session for some reason.

virtual void PainterDisplay ( TimeValue  t,
ViewExp vpt,
int  flags 
) [pure virtual]

this is called when the painter updates the view ports this will let you do custom drawing if you need to


IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5
IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5 IPainterCanvasInterface_V5