maxscript/maxwrapper/meshselection.h File Reference
 
 
 
maxscript/maxwrapper/meshselection.h File Reference
#include "../kernel/value.h"
#include "mxsobjects.h"
#include "../../mnmesh.h"
#include "../../patch.h"
#include "../macros/define_implementations.h"
#include "..\protocols\arrays.inl"

Classes

class   MeshSelection

Defines

#define  MSEL_ALL   1
#define  MSEL_CUR   2
#define  MSEL_EXP   3
#define  MSEL_SINGLE   4
#define  MSEL_NAMED   5
#define  is_meshselection(v)
#define  is_vertselection(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(VertSelectionValue))
#define  is_faceselection(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(FaceSelectionValue))
#define  is_edgeselection(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(EdgeSelectionValue))

Functions

  visible_class (VertSelectionValue) class VertSelectionValue
  visible_class (FaceSelectionValue) class FaceSelectionValue
  visible_class (EdgeSelectionValue) class EdgeSelectionValue

Define Documentation

#define MSEL_ALL   1
#define MSEL_CUR   2
#define MSEL_EXP   3
#define MSEL_SINGLE   4
#define MSEL_NAMED   5
#define is_meshselection (   v )
Value:
((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(VertSelectionValue) || (v)->tag == class_tag(FaceSelectionValue) || \
                                                                (v)->tag == class_tag(EdgeSelectionValue) )
#define is_vertselection (   v )    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(VertSelectionValue))
#define is_faceselection (   v )    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(FaceSelectionValue))
#define is_edgeselection (   v )    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(EdgeSelectionValue))

Function Documentation

visible_class ( VertSelectionValue  )
                         : public MeshSelection
{
public:
        ScripterExport VertSelectionValue(MAXWrapper* own, BYTE stype, int indx = 0);
        
        MeshSelection* new_sel(MAXWrapper* own, BYTE stype, int indx = 0);

                                classof_methods (VertSelectionValue, Value);
#       define          is_vertselection(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(VertSelectionValue))
        void            collect();
        ScripterExport void sprin1(CharStream* s);

        // specialized utility functions
        BitArray        get_sel();
        BitArray        get_owner_sel() { return (owner == NULL) ? BitArray() : owner->get_vertsel(); }
        void            set_owner_sel(BitArray &sel) {if (owner != NULL) owner->set_vertsel(sel); }
        BitArray        get_sel_vertices(Mesh* m);
        BitArray        get_sel_vertices(MNMesh* m);
        BitArray        get_sel_vertices(PatchMesh* m);
        GenericNamedSelSetList& get_named_sel_set_list() { return owner->get_named_vertsel_set(); }
        int                     num_elements(Mesh* m) { return m->getNumVerts(); } 
        int                     num_elements(MNMesh* m) { return m->VNum(); } 
        int                     num_elements(PatchMesh* m) { return m->getNumVerts(); } 
        BOOL            is_same_selection(Value* s) { return is_vertselection(s); }
        void            delete_sel(Mesh& m, MeshDelta& md, BitArray &sel);
        void            delete_sel(MNMesh* m, ReferenceTarget* owner, BitArray &sel); 

        // operations
        def_generic ( put,                      "put");

        // built-in property accessors
        def_property ( pos );
};
visible_class ( FaceSelectionValue  )
                         : public MeshSelection
{
public:
        ScripterExport FaceSelectionValue(MAXWrapper* own, BYTE stype, int indx = 0);
        
        MeshSelection* new_sel(MAXWrapper* own, BYTE stype, int indx = 0);

                                classof_methods (FaceSelectionValue, Value);
#       define          is_faceselection(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(FaceSelectionValue))
        void            collect();
        ScripterExport void sprin1(CharStream* s);

        // specialized utility functions
        BitArray        get_sel();
        BitArray        get_owner_sel() { return (owner == NULL) ? BitArray() : owner->get_facesel(); }
        void            set_owner_sel(BitArray &sel) {if (owner != NULL) owner->set_facesel(sel); }
        BitArray        get_sel_vertices(Mesh* m);
        BitArray        get_sel_vertices(MNMesh* m);
        BitArray        get_sel_vertices(PatchMesh* m);
        GenericNamedSelSetList& get_named_sel_set_list() { return owner->get_named_facesel_set(); }
        int                     num_elements(Mesh* m) { return m->getNumFaces(); } 
        int                     num_elements(MNMesh* m) { return m->FNum(); } 
        int                     num_elements(PatchMesh* m) { return m->getNumPatches(); } 
        BOOL            is_same_selection(Value* s) { return is_faceselection(s); }
        void            delete_sel(Mesh& m, MeshDelta& md, BitArray &sel);
        void            delete_sel(MNMesh* m, ReferenceTarget* owner, BitArray &sel); 

        // operations
        def_generic ( put,                      "put");

        // built-in property accessors
};
visible_class ( EdgeSelectionValue  )
                         : public MeshSelection
{
public:
        ScripterExport EdgeSelectionValue(MAXWrapper* own, BYTE stype, int indx = 0);
        
        MeshSelection* new_sel(MAXWrapper* own, BYTE stype, int indx = 0);

                                classof_methods (EdgeSelectionValue, Value);
#       define          is_edgeselection(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(EdgeSelectionValue))
        void            collect();
        ScripterExport void sprin1(CharStream* s);

        // specialized utility functions
        BitArray        get_sel();
        BitArray        get_owner_sel() { return (owner == NULL) ? BitArray() : owner->get_edgesel(); }
        void            set_owner_sel(BitArray &sel) {if (owner != NULL) owner->set_edgesel(sel); }
        BitArray        get_sel_vertices(Mesh* m);
        BitArray        get_sel_vertices(MNMesh* m);
        BitArray        get_sel_vertices(PatchMesh* m);
        GenericNamedSelSetList& get_named_sel_set_list() { return owner->get_named_edgesel_set(); }
        int                     num_elements(Mesh* m) { return m->getNumFaces() * 3; } 
        int                     num_elements(MNMesh* m) { return m->ENum(); } 
        int                     num_elements(PatchMesh* m) { return m->getNumEdges(); } 
        BOOL            is_same_selection(Value* s) { return is_edgeselection(s); }
        void            delete_sel(Mesh& m, MeshDelta& md, BitArray &sel);
        void            delete_sel(MNMesh* m, ReferenceTarget* owner, BitArray &sel); 

        // operations

        // built-in property accessors
};