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

During its creation, the A3DProjectPointCloudManager performs some NURBS conversion of every RepresentationItem present in the input model.

The same result can be reproduced by calling the AdaptAndReplace or CopyAndAdapt functions, as shown in the BrepAdaptor sample, with the following parameters:

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];