Softimage SDK Programmer's Guide > Plug-in Development > Modeling >

# Deforming Geometry (Changing Components)

Components are the parts of a geometric object, such as points, segments, and facets. Since each object consists of several components, you need to refer to the individual components by using a number called an index. For example, the expression that follows refers to the point number 3 on the cube "aCube":

    "aCube.pnt[3]"

Native Softimage commands use string expressions, while the object model uses properties, so if you want to use the equivalent expression in the object model, the corresponding statement is:

    oGeo.Points(3)

Note

The purpose of these statements is to illustrate how to use an index number to identify the component, in this case a point. However, accessing points is a more complex process, involving much more context, as you will see in the next few sections.

Component indexes start at 0, so "aCube.pnt[0]" or oGeo.Points(0) is the first point. For this reason, it is easier to think of "aCube.pnt[3]" or oGeo.Points(3) as point number 3 instead of as the fourth point.

String expressions are very flexible. You can select any combination of individual points, ranges, and even use wildcards. For more about using string expressions, see Accessing Scene Elements.

The tables below provides an overview of how to access object components.

Curves | Using native Softimage commands... | Using the object model (from X3DObject)
--- | --- | ---
Control Points |
    "myObj.pnt[(9,2),(8,3)]"
    "myObj.pnt[3-7]"
    .Geometry.Points
    .Geometry.Curves(0).ControlPoints
Knots |
    "myObj.knot[14-18]"
    "myObj.knot[(0,2),(2,2)]"
    .Geometry.Surfaces(0).UKnots
    .Geometry.Surfaces(0).Knots(siUDirection)
Isopoints |
    "myObj.isopnt[0,1.25]"
| ---
Knot Curves |
    "myObj.knotcrvu[3]"
| ---
Subcurves |
    "myObj.subcrv[0]"
    .Geometry.Segments
    .Geometry.Curves

Surfaces | Using native Softimage commands... | Using the object model (from X3DObject)
--- | --- | ---
Boundaries |
    "myObj.bndry[0]"
| ---
Isolines |
    "myCube.isolineu[2.25]"
| ---
Subsurfaces |
    "myCube.subsrf[0]"
    .Geometry.Facets
    .Geometry.Surfaces

Polygons | Using native Softimage commands... | Using the object model (from X3DObject)
--- | --- | ---
Vertices |
    "myCube.pnt[*]"
    .Geometry.Points
Edges |
    "myCube.edge[LAST]"
    .Geometry.Segments
Polygons |
    "myCube.poly[4]"
    .Geometry.Facets
    .PolygonMesh.Polygons

Accessing 0D Geometry (Vertices, Points, Knots, and More)

Depending on the method or command you choose, "points" may refer to the control points of a NURBS object or the vertices of a polygon mesh object, or both.

Accessing 1D Geometry (Segments, Curves, and More)

Depending on the method or command you choose, "segments" may refer to the curves of a NURBS object or the edges of a polygon mesh object, or both.

Accessing 2D Geometry (Facets and Subsurfaces)

Depending on the method or command you choose, "facets" may refer to the subsurfaces of a NURBS object or the faces of a polygon mesh object, or both.