> For the complete documentation index, see [llms.txt](https://docs.optitrack.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.optitrack.com/v1.1/developer-tools/motive-api/class-ccameragrouppointcloudsettings.md).

# Class: cCameraGroupPointCloudSettings

The *cCameraGroupPointCloudSettings* class contains variables for configuring the point cloud reconstruction settings. An instance of this class can be assigned to a camera group, and used to optimize, or modify, the reconstruction from the group. There are multiple enum variables for defining various reconstruction settings.

* Use the member functions to change the setting values within a *cCameraGroupPointCloudSettings* instance.
* When using the Motive API, use TT\_CameraGroupPointCloudSettings function to obtain a *cCameraGroupPointCloudSettings* instance from a camera group. Then use the TT\_SetCameraGroupPointCloudSettings function to assign a *cCameraGroupPointCloudSettings* instance to a camera group.

Please refer to the Reconstruction page for detailed descriptions on individual settings.

### Member Functions

#### SetBoolParameter, SetDoubleParameter, SetLongParameter

These member functions are used for changing reconstruction settings (bool, double, long) of a *cCameraGroupPointCloudSettings* instance. Call matching data type functions to modify the parameters.

```
bool	SetBoolParameter( Setting which, bool val );
```

```
bool	SetDoubleParameter( Setting which, double val );
```

```
bool	SetLongParameter( Setting which, long val );
```

<br>

#### BoolParameter, DoubleParameter, LongParameter

These member functions fetches a point cloud reconstruction parameter from a *cCameraGroupPointCloudsettings* instance and saves it in the designated address. Call matching data type functions to obtain the parameters.

```
bool	BoolParameter( Setting which, bool &val ) const;
```

```
bool	DoubleParameter( Setting which, double &val ) const;
```

```
bool	LongParameter( Setting which, long &val ) const;
```

### Declaration: NPTrackingTools.h

{% code overflow="wrap" %}

```
class TTAPI cCameraGroupPointCloudSettings
{
public:
    enum Setting : unsigned long long
    {
        eResolvePointCloud = 1LL,               // bool
        eShowCameras = 1LL << 1,                // bool
        eVisibleMarkerSize = 1LL << 3,          // double
        ePCResidual = 1LL << 4,                 // double
        ePCMinSize = 1LL << 5,                  // double
        ePCMaxSize = 1LL << 6,                  // double
        ePCMinAngle = 1LL << 7,                 // double
        ePCMinRays = 1LL << 8,                  // long
        eShutterDelay = 1LL << 9,               // long
        ePrecisionPacketCap = 1LL << 10,        // long
        ePCMinRayLength = 1LL << 11,            // double
        ePCMaxRayLength = 1LL << 12,            // double
        ePCReconstructMinX = 1LL << 13,         // double
        ePCReconstructMaxX = 1LL << 14,         // double
        ePCReconstructMinY = 1LL << 15,         // double
        ePCReconstructMaxY = 1LL << 16,         // double
        ePCReconstructMinZ = 1LL << 17,         // double
        ePCReconstructMaxZ = 1LL << 18,         // double
        ePCObjectFilterLevel = 1LL << 19,       // long
        ePCObjectFilterMinSize = 1LL << 20,     // long
        ePCObjectFilterMaxSize = 1LL << 21,     // long
        ePCObjectFilterCircularity = 1LL << 22, // double
        ePCObjectFilterGrayscaleFloor = 1LL << 23, // long
        ePCObjectFilterAspectTolerance = 1LL << 24, // long
        ePCObjectFilterObjectMargin = 1LL << 25, // long
        eShowReconstructionBounds = 1LL << 26,  // bool
        eBoundReconstruction = 1LL << 27,       // bool
        eShowCaptureVolume = 1LL << 28,         // bool
        eShow3DMarkers = 1LL << 29,             // bool
        eShowCameraFOV = 1LL << 30,             // bool
        eCameraOverlap = 1LL << 31,             // double
        eVolumeResolution = 1LL << 32,          // double
        eWireframe = 1LL << 33,                 // double
        eFOVIntensity = 1LL << 34,              // double
        eRankRays = 1LL << 35,                  // bool
        eMinimumRankRayCount = 1LL << 36,       // long
        ePCPixelGutter = 1LL << 37,             // long
        ePCMaximum2DPoints = 1LL << 38,         // long
        ePCCalculationTime = 1LL << 39,         // long
        ePCThreadCount = 1LL << 40,             // long
        ePCCalculateDiameter = 1LL << 41,       // bool
        ePCBoostMultThreads = 1LL << 42,        // bool
        ePCSmallMarkerOptimization = 1LL << 43, // long
        eBlockWidth = 1LL << 44,                // double
        eBlockHeight = 1LL << 45,               // double
        ePointCloudEngine = 1LL << 46,          // long 1=v1.0  2=v2.0, etc.
        eSynchronizerEngine = 1LL << 47,        // long 1=v1.0  2=v2.0
        eMarkerDiameterType = 1LL << 48,        // long
        eMarkerDiameterForceSize = 1LL << 49,   // double
        eSynchronizerControl = 1LL << 50,       // long
        ePCBoostLeastSq = 1LL << 51,            // bool
        eSettingsCount
    };
 
    cCameraGroupPointCloudSettings();
    ~cCameraGroupPointCloudSettings();

    //== Set individual parameter values. Only values that are set will be changed when submitting
    //== the settings block to TT_SetCameraGroupPointCloudSettings. These methods will return false 
    //== if there is a mismatch between the requested parameter and its expected type.
    bool            SetBoolParameter( Setting which, bool val );
    bool            SetDoubleParameter( Setting which, double val );
    bool            SetLongParameter( Setting which, long val );

    //== Retrieve individual parameter settings from the parameter block. These methods will return false 
    //== if there is a mismatch between the requested parameter and its expected type.
    bool            BoolParameter( Setting which, bool &val ) const;
    bool            DoubleParameter( Setting which, double &val ) const;
    bool            LongParameter( Setting which, long &val ) const;

private:
    unsigned long long mWhichSet;
    void            *mSettings;

    friend TTAPI NPRESULT TT_CameraGroupPointCloudSettings(int groupIndex, cCameraGroupPointCloudSettings &settings);
    friend TTAPI NPRESULT TT_SetCameraGroupPointCloudSettings(int groupIndex, cCameraGroupPointCloudSettings &settings);
};
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.optitrack.com/v1.1/developer-tools/motive-api/class-ccameragrouppointcloudsettings.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
