Public Member Functions

MeshDeltaUserData Class Reference

Search for all occurrences

Detailed Description

See also:
Class Mesh, Class MeshDelta, Class MeshDeltaUser, Class LocalModData, Class Matrix3, Class Point3, Class Quat, Class BitArray.

Description:
This class is available in release 3.0 and later only.

This class provides a standard interface for modifiers and objects that use mesh deltas -- specifically Edit Mesh and Editable Mesh.

Both Edit Mesh and Editable Mesh have a current "state", which can be modified by MeshDeltas. In Editable Mesh, this "state" is an actual mesh, while in Edit Mesh, this is one MeshDelta per LocalModData. This class provides a standard interface to these: "MeshDeltaUser" and "MeshDeltaUserData".

#include <meshdelta.h>

Inheritance diagram for MeshDeltaUserData:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual void  ApplyMeshDelta (MeshDelta &md, MeshDeltaUser *mdu, TimeValue t)=0
virtual MeshDelta GetCurrentMDState ()
virtual void  MoveSelection (int level, TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Point3 &val, BOOL localOrigin)=0
virtual void  RotateSelection (int level, TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Quat &val, BOOL localOrigin)=0
virtual void  ScaleSelection (int level, TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Point3 &val, BOOL localOrigin)=0
virtual void  ExtrudeSelection (int level, BitArray *sel, float amount, float bevel, BOOL groupNormal, Point3 *direction)=0

Member Function Documentation

virtual void ApplyMeshDelta ( MeshDelta md,
MeshDeltaUser mdu,
TimeValue  t 
) [pure virtual]
Remarks:
This method applies the MeshDelta. Everything that happens in Edit Mesh and Editable Mesh goes through this method. Note that in Edit Mesh, the MeshDeltaUserData (EditMeshData) is separate from the MeshDeltaUser (EditMeshMod), though in Editable Mesh, EditTriObject subclasses from both of them.

There's essentially one mesh that can be edited per MeshDeltaUserData, so ApplyMeshDelta is the way to edit that mesh. ApplyMeshDelta typically handles adding Restore objects (if theHold.Holding()), clearing out any temporary local caches that are invalidated, and notifying the pipeline that the mesh has changed.
Parameters:
MeshDelta &md

The mesh delta to apply.

MeshDeltaUser *mdu

Points to the mesh delta user.

TimeValue t

The time to apply the mesh delta.
virtual MeshDelta* GetCurrentMDState ( ) [inline, virtual]
Remarks:
Returns a pointer to the MeshDelta object for this application of the Edit Mesh modifier. This is only non-NULL in Edit Mesh.
Default Implementation:
{ return NULL; }
{ return NULL; } // only non-null in Edit Mesh
virtual void MoveSelection ( int  level,
TimeValue  t,
Matrix3 partm,
Matrix3 tmAxis,
Point3 val,
BOOL  localOrigin 
) [pure virtual]
virtual void RotateSelection ( int  level,
TimeValue  t,
Matrix3 partm,
Matrix3 tmAxis,
Quat val,
BOOL  localOrigin 
) [pure virtual]
virtual void ScaleSelection ( int  level,
TimeValue  t,
Matrix3 partm,
Matrix3 tmAxis,
Point3 val,
BOOL  localOrigin 
) [pure virtual]
virtual void ExtrudeSelection ( int  level,
BitArray sel,
float  amount,
float  bevel,
BOOL  groupNormal,
Point3 direction 
) [pure virtual]

MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData
MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData MeshDeltaUserData