Selection Class Reference
 
 
 
Selection Class Reference

#include <xsi_selection.h>


Class 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() );
Inheritance diagram for Selection:
CBase

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: