# FAQ: What are the AdaptAndReplace/CopyAndAdapt parameters used by the ProjectPointCloudManager?

**URL:** <https://forum.techsoft3d.com/t/faq-what-are-the-adaptandreplace-copyandadapt-parameters-used-by-the-projectpointcloudmanager/1464>\
**Category:** HOOPS Exchange\
**Tags:** code, knowledge-base, faq, brep\
**Created:** [March 15, 2022, 4:00am UTC](https://forum.techsoft3d.com/t/faq-what-are-the-adaptandreplace-copyandadapt-parameters-used-by-the-projectpointcloudmanager/1464 "2022-03-15T04:00:00Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![gabriel.peragine](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.techsoft3d.com/gabriel.peragine/32/1535_2.png) [@gabriel.peragine](https://forum.techsoft3d.com/u/gabriel.peragine)\
**Post date:** [March 15, 2022, 4:00am UTC](https://forum.techsoft3d.com/t/faq-what-are-the-adaptandreplace-copyandadapt-parameters-used-by-the-projectpointcloudmanager/1464/1 "2022-03-15T04:00:00Z")

</div>

During its creation, the [A3DProjectPointCloudManager](https://docs.techsoft3d.com/exchange/latest/api/A3DSDKTypes_8h.html#_CPPv427A3DProjectPointCloudManager)performs some [NURBS conversion](https://docs.techsoft3d.com/exchange/latest/guide/geometry/convert_brep_to_nurbs.html) of every RepresentationItem present in the input model.

The same result can be reproduced by calling the [AdaptAndReplace](https://docs.techsoft3d.com/exchange/latest/build/group __a3d__ adapt __and__ replace __all__ brep __in__ modelfile.html)or [CopyAndAdapt](https://docs.techsoft3d.com/exchange/latest/api/structA3DCopyAndAdaptBrepModelData.html#a3dcopyandadaptbrepmodeldata)functions, as shown in the BrepAdaptor sample, with the following parameters:

```auto
const A3DUns32 NUM_VALID_SURFACES = 18; // All surfaces are converted
A3DUns32 ACCEPTED_SURFACES[NUM_VALID_SURFACES] = {
	kA3DTypeSurfBlend01,
	kA3DTypeSurfBlend02,
	kA3DTypeSurfBlend03,
	kA3DTypeSurfNurbs,
	kA3DTypeSurfCone,
	kA3DTypeSurfCylinder,
	kA3DTypeSurfCylindrical,
	kA3DTypeSurfOffset,
	kA3DTypeSurfPipe,
	kA3DTypeSurfPlane,
	kA3DTypeSurfRuled,
	kA3DTypeSurfSphere,
	kA3DTypeSurfRevolution,
	kA3DTypeSurfExtrusion,
	kA3DTypeSurfFromCurves,
	kA3DTypeSurfTorus,
	kA3DTypeSurfTransform,
	kA3DTypeSurfBlend04,
};

const A3DUns32 NUM_VALID_CURVES = 15; // All curves are converted
A3DUns32 ACCEPTED_CURVES[NUM_VALID_CURVES] = {
  kA3DTypeCrvBlend02Boundary,
  kA3DTypeCrvNurbs,
  kA3DTypeCrvCircle,
  kA3DTypeCrvComposite,
  kA3DTypeCrvOnSurf,
  kA3DTypeCrvEllipse,
  kA3DTypeCrvEquation,
  kA3DTypeCrvHelix,
  kA3DTypeCrvHyperbola,
  kA3DTypeCrvIntersection,
  kA3DTypeCrvLine,
  kA3DTypeCrvOffset,
  kA3DTypeCrvParabola,
  kA3DTypeCrvPolyLine,
  kA3DTypeCrvTransform,
};

sCopyAndAdaptBrepModelData.m_dTol = 0.;	// Keep the model tolerance
sCopyAndAdaptBrepModelData.m_bUseSameParam = true;
sCopyAndAdaptBrepModelData.m_bForceComputeUV = true;
sCopyAndAdaptBrepModelData.m_bForceCompute3D = false;
sCopyAndAdaptBrepModelData.m_bSplitFaces = false;
sCopyAndAdaptBrepModelData.m_bSplitClosedFaces = false;
sCopyAndAdaptBrepModelData.m_bDeleteCrossingUV = false;
sCopyAndAdaptBrepModelData.m_bAllowUVCrossingSeams = false;
sCopyAndAdaptBrepModelData.m_bForceDuplicateGeometries = false;
sCopyAndAdaptBrepModelData.m_bClampTolerantUVCurvesInsideUVDomain = false;
sCopyAndAdaptBrepModelData.m_bContinueOnError = false;
sCopyAndAdaptBrepModelData.m_uiAcceptableSurfacesSize = NUM_VALID_SURFACES;
sCopyAndAdaptBrepModelData.m_puiAcceptableSurfaces = &ACCEPTED_SURFACES[0];
sCopyAndAdaptBrepModelData.m_uiAcceptableCurvesSize = NUM_VALID_CURVES;
sCopyAndAdaptBrepModelData.m_puiAcceptableCurves = &ACCEPTED_CURVES[0];

```
