Public Member Functions
Selection Class Reference

Detailed Description

The selection object represents the global selection for the application.

The user can change the global selection in the views, explorer, MCA (selection sub-panel in the main control panel), and through script commands (for example, see the SelectObj, AddToSelection, RemoveFromSelection, ToggleSelection, and DeselectAll, commands etc.).

Note:
Selection provides access to its members through Selection::GetItem which returns a reference to the specified item. For example, whether you select the whole sphere or only a subcomponent (like an edge), you get a CRef.
Example:
        using namespace XSI;
        Application app;
        Model root = app.GetActiveSceneRoot();

        // creates some objects and adds them to the selection list
        X3DObject myCube;
        root.AddGeometry( L"Cube", L"MeshSurface", L"myCube", myCube );

        X3DObject myGrid;
        root.AddGeometry( L"Grid", L"NurbsSurface", L"myGrid", myGrid );

        X3DObject myCylinder;
        root.AddGeometry( L"Cylinder", L"MeshSurface", L"myCylinder", myCylinder );

        Property myProp;
        myCylinder.AddProperty(L"Display Property", false, L"MyDisplayProp", myProp);

        Selection selection( app.GetSelection() );

        selection.Add( myCube );
        selection.Add( myGrid );
        selection.Add( myProp );

        // iterate over the selection
        LONG lCount = selection.GetCount();
        app.LogMessage( L"Selection count: " + CValue(lCount).GetAsText() );

        for (LONG i=0; i<lCount; i++ )
        {
            SIObject obj(selection[i]);
            app.LogMessage( L"Selection " + CValue(i).GetAsText() +
                L"= " + obj.GetName() );
        }

        // enumerate all polygon meshes
        CRefArray array(selection.GetArray());

        CRefArray meshRefArray;
        array.Filter(siPolyMeshType, CStringArray(), L"", meshRefArray );

        lCount = meshRefArray.GetCount();
        for (i=0; i<lCount; i++ )
        {
            SIObject obj(meshRefArray[i]);
            app.LogMessage( L"Mesh "+CValue(i).GetAsText()+
                            L"= "+obj.GetName() );
        }

        // find the selected display property
        CRef propRef;
        array.Find( siDisplayType, propRef );

        SIObject obj(propRef);
        app.LogMessage( L"Display Property = " + obj.GetName() );

#include <xsi_selection.h>

Inheritance diagram for Selection:
Inheritance graph
[legend]

List of all members.

Public Member Functions

  Selection ()
  ~Selection ()
  Selection (const CRef &in_ref)
  Selection (const Selection &in_obj)
bool  IsA (siClassID in_ClassID) const
siClassID  GetClassID () const
Selection operator= (const Selection &in_obj)
Selection operator= (const CRef &in_ref)
CRef  operator[] (LONG in_index)
CRef  GetItem (LONG in_index) const
CRef  GetItem (const CString &in_name) const
CStatus  Add (const CRef &in_object, siSelectMode in_selType=siSelectDefault)
CStatus  Remove (const CRef &in_object, siSelectMode in_selType=siSelectDefault)
CStatus  Clear ()
LONG  GetCount () const
CRefArray  GetArray ()
CStatus  SetAsText (const CString &in_str)
CString  GetAsText ()
Filter  GetFilter () const

Constructor & Destructor Documentation

Selection ( )

Default constructor.

~Selection ( )

Default destructor.

Selection ( const CRef in_ref )

Constructor.

Parameters:
in_ref constant reference object.
Selection ( const Selection in_obj )

Copy constructor.

Parameters:
in_obj constant class object.

Member Function Documentation

bool IsA ( siClassID  in_ClassID ) const [virtual]

Returns true if a given class type is compatible with this API class.

Parameters:
in_ClassID class type.
Returns:
true if the class is compatible, false otherwise.

Reimplemented from CBase.

siClassID GetClassID ( ) const [virtual]

Returns the type of the API class.

Returns:
The class type.

Implements CBase.

Selection& operator= ( const Selection in_obj )

Creates an object from another object. The new object is set to empty if the input object is not compatible.

Parameters:
in_obj constant class object.
Returns:
The new Selection object.
Selection& operator= ( const CRef in_ref )

Creates an object from a reference object. The new object is set to empty if the input reference object is not compatible.

Parameters:
in_ref constant class object.
Returns:
The new Selection object.
CRef operator[] ( LONG  in_index )

Accesses elements at a given index.

Parameters:
in_index CRef object
Returns:
A new reference object.
CRef GetItem ( LONG  in_index ) const

Returns a CRef object contained in the list given an index number.

Parameters:
in_index A number index
Returns:
A reference to the specified selection item.
CRef GetItem ( const CString in_name ) const

Returns a CRef object contained in the list given an object string name.

Parameters:
in_name The name of an object to retrieve.
Returns:
A reference to the specified selection item.
CStatus Add ( const CRef in_object,
siSelectMode  in_selType = siSelectDefault 
)

Adds a reference to an object to the selection list.

Parameters:
in_object A reference to the object to add.
in_selType Specifies how the object is selected in hierarchy.
Returns:
CStatus::OK Success
CStatus::Fail Failure
CStatus Remove ( const CRef in_object,
siSelectMode  in_selType = siSelectDefault 
)

Removes a item from the selection list.

Parameters:
in_object A reference to object to remove.
in_selType Specifies how the object is selected in hierarchy (node, branch, tree, model)
Returns:
CStatus::OK Success
CStatus::Fail Failure
CStatus Clear ( )

Deselects everything.

Returns:
CStatus::OK Success
CStatus::Fail Failure

Reimplemented from CBase.

LONG GetCount ( ) const

Returns the number of items in the Selection

Returns:
Number of items
CRefArray GetArray ( )

Returns a CRefArray containing the selected objects.

Returns:
The selection list.
CStatus SetAsText ( const CString in_str )

Sets the selection by parsing a given string.

Parameters:
in_str Text string to parse. The string list is comma-separated. You may use wildcards in the string to match many object for example light*
Returns:
CStatus::OK success
CStatus::Fail The string is either badly formatted or contains unresolvable object names.
Example:
Creates some objects and adds them to the selection list.
        using namespace XSI;
        Application app;
        Model root = app.GetActiveSceneRoot();

        X3DObject myCube;
        root.AddGeometry( L"Cube", L"MeshSurface", L"myCube", myCube );

        X3DObject myGrid;
        root.AddGeometry( L"Grid", L"NurbsSurface", L"myGrid", myGrid );

        X3DObject myCylinder;
        root.AddGeometry( L"Cylinder", L"MeshSurface", L"myCylinder", myCylinder );

        Selection sel = app.GetSelection();

        CString str;
        str = L"myCube";
        str += L",";
        str += L"myGrid";
        str += L",";
        str += L"myCylinder";

        sel.SetAsText( str );

        LONG lCount = sel.GetCount();
        app.LogMessage( L"Selection count: " + CValue(lCount).GetAsText() );
        //'INFO : "Selection count: 3"

        for (LONG i=0; i<lCount; i++ )
        {
            SIObject obj(sel[i]);
            app.LogMessage( L"Selection " + CValue(i).GetAsText() + L"= " +
                obj.GetFullName() );
        }

        //'INFO : "Selection 0= myCube"
        //'INFO : "Selection 1= myGrid"
        //'INFO : "Selection 2= myCylinder"
CString GetAsText ( )

Returns the contents of the selection as a readable string.

Returns:
A readable string or an empty value if the string can't be expressed as a readable string.
Example:
Creates some objects and adds them to the selection list
        using namespace XSI;
        Application app;
        Model root = app.GetActiveSceneRoot();

        X3DObject myCube;
        root.AddGeometry( L"Cube", L"MeshSurface", L"myCube", myCube );

        X3DObject myGrid;
        root.AddGeometry( L"Grid", L"NurbsSurface", L"myGrid", myGrid );

        X3DObject myCylinder;
        root.AddGeometry( L"Cylinder", L"MeshSurface", L"myCylinder", myCylinder );

        Selection sel = app.GetSelection();

        sel.Add( myCube );
        sel.Add( myGrid );
        sel.Add( myCylinder );

        CString strSel = sel.GetAsText();

        app.LogMessage( L"Selection as text: " +  strSel );
        // 'INFO : "Selection as text: myCube,myGrid,myCylinder"
Filter GetFilter ( ) const

Returns the currently selected filter from the selection.

Returns:
Current Filter object.
Since:
4.0
Example:
        using namespace XSI;
        Application app;
        Selection sel = app.GetSelection();
        Filter currentFilter = sel.GetFilter();

        app.LogMessage( L"Selected filter: " +  currentFilter.GetName() );

The documentation for this class was generated from the following file: