---
name: "SoPointSet"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoPointSet/3iv"
---

# SoPointSet(3iv)

point set shape node

## NAME

SoPointSet — point set shape node

## INHERITS FROM

SoBase \> SoFieldContainer \> SoNode \> SoShape \> SoVertexShape \> SoNonIndexedShape \> SoPointSet

## SYNOPSIS

**#include \<Inventor/nodes/SoPointSet.h\>**

Fields from class SoPointSet:

**SoSFInt32**	**numPoints**

Fields from class SoNonIndexedShape:

**SoSFInt32**	**startIndex**

Fields from class SoVertexShape:

**SoSFNode**	**vertexProperty**

Methods from class SoPointSet:

	**SoPointSet()**\
 **static SoType**	**getClassTypeId()**

Methods from class SoNode:

**void**	**setOverride(SbBool state)**\
 **SbBool**	**isOverride() const**\
 **SoNode \***	**copy(SbBool copyConnections = FALSE) const**\
 **virtual SbBool**	**affectsState() const**\
 **static SoNode \***	**getByName(const SbName &name)**\
 **static int**	**getByName(const SbName &name, SoNodeList &list)**

Methods from class SoFieldContainer:

**void**	**setToDefaults()**\
 **SbBool**	**hasDefaultValues() const**\
 **SbBool**	**fieldsAreEqual(const SoFieldContainer \*fc) const**\
 **void**	**copyFieldValues(const SoFieldContainer \*fc, SbBool copyConnections = FALSE)**\
 **SbBool**	**set(const char \*fieldDataString)**\
 **void**	**get(SbString &fieldDataString)**\
 **virtual int**	**getFields(SoFieldList &resultList) const**\
 **virtual SoField \***	**getField(const SbName &fieldName) const**\
 **SbBool**	**getFieldName(const SoField \*field, SbName &fieldName) const**\
 **SbBool**	**isNotifyEnabled() const**\
 **SbBool**	**enableNotify(SbBool flag)**

Methods from class SoBase:

**void**	**ref()**\
 **void**	**unref() const**\
 **void**	**unrefNoDelete() const**\
 **void**	**touch()**\
 **virtual SoType**	**getTypeId() const**\
 **SbBool**	**isOfType(SoType type) const**\
 **virtual void**	**setName(const SbName &name)**\
 **virtual SbName**	**getName() const**

## DESCRIPTION

**This node represents a set of points located at the coordinates specified by the vertexProperty** field (from **SoVertexShape**) or the current inherited coordinates. For optimal performance, the **vertexProperty** field is recommended.

**SoPointSet** uses the coordinates in order, starting with the first one. The number of points in the set is specified by the **numPoints** field.

The coordinates of the point set are transformed by the current cumulative transformation. The points are drawn with the current light model and drawing style (drawing styles **FILLED** and **LINES** are treated as **POINTS**).

Treatment of the current material and normal binding is as follows: **PER\_PART**, **PER\_FACE**, and **PER\_VERTEX** bindings bind one material or normal to each point. The default material binding is **OVERALL**. The default normal binding is **PER\_VERTEX**.

## FIELDS

**SoSFInt32**	**numPoints**\
 Number of points.

## METHODS

	**SoPointSet()**\
 Creates a point set node with default settings.

**static SoType**	**getClassTypeId()**\
 Returns type identifier for this class.

## ACTION BEHAVIOR

**SoGLRenderAction**\
 Draws points based on the current coordinates, normals, materials, drawing style, and so on.

**SoRayPickAction**\
 Picks points based on the current coordinates and transformation. Details about the intersection are returned in an **SoPointDetail**.

**SoGetBoundingBoxAction**\
 Computes the bounding box that encloses all points in the set with the current transformation applied to them. Sets the center to the average of the coordinates of all points.

**SoCallbackAction**\
 If any point callbacks are registered with the action, they will be invoked for each point in the set.

## FILE FORMAT/DEFAULTS

```
PointSet {
vertexProperty	NULL
startIndex	0
numPoints	-1
}
```

## SEE ALSO

**SoCoordinate3, SoDrawStyle, SoPointDetail, SoVertexProperty**
