Cyclone 3DR Script
from Technodigit, part of Hexagon. Copyright 1997-2022.
 
Loading...
Searching...
No Matches
SCloud.h
1
2
3
5
6#pragma once
7
8#include "RshPluginScript/RshPluginScriptDefines.h"
9#include "RshPluginScript/SClass/SCloudIterCPP.h"
10#include "RshPluginScript/SClass/SComp.h"
11
12#ifndef FCT_DOC
13namespace rsh::ScriptBinding
14{
15#endif // !FCT_DOC
16
40class SCloud : public SComp
41{
42 //======================================================================================================================
43 // INTERNAL FUNCTION
44 //======================================================================================================================
45
46 //======================================================================================================================
47 // DOCUMENTED FUNCTION
48 //======================================================================================================================
49
50public:
55 {
56 // representations which are always available
57 CLOUD_FLAT, // flat - no shading
58 CLOUD_SMOOTH, // smooth shading
59 CLOUD_SMOOTH_BACK, // smooth shading + back and front in different color (only available if scanning direction is known)
60
61 CLOUD_COLORED, // Colored points (only available if the cloud contains color information)
62 CLOUD_INSPECTION, // Colors ares based on an inspection value on each point. (only available if the cloud contains inspection information)
63 CLOUD_CLASSIFICATION, // Colors ares based on classification ID on each point. (only available if the cloud contains classification information)
64 CLOUD_DEBUG_SPLATTING_SMOOTH, // Displays the cloud using the splatting method (For debug only)
65 CLOUD_DEBUG_SPLATTING_COLORED, // Displays the cloud using the splatting method using colored points (only available if the cloud contains color information) (For debug only)
66 };
67
68
72 {
73 BEST_SQ_SLOT};
74
78 {
79 NO_FORCE,
81 FORCE_NORMAL,
83 FORCE_PLANE,
85 FORCE_MAIN_DIRECTION,
87 FORCE_LENGTH,
89 FORCE_WIDTH,
91 FORCE_SQUARE,
94 FORCE_IN_BEST_PLANE,
97 FORCE_CENTER,
99 };
100
104 {
105 FILL_ALL, // Both InCloud and OutCloud should be filled
106 FILL_IN_ONLY, // Only Fills the InCloud
107 FILL_OUT_ONLY, // Only Fills the OutCloud
108 FILL_NONE// Neither InCloud nor OutCloud should be filled
109 };
110
114 {
115 PLANE_FORCE_NOTHING, // Nothing is forced
116 PLANE_FORCE_POINT, // Average point is forced (a plane passing by this point should be found)
117 PLANE_FORCE_NORMAL// Normal is forced (a plane with this normal should be found)
118 };
119
123 {
124 LINE_FORCE_NOTHING, // Nothing is forced
125 LINE_FORCE_POINT, // Average point is forced (a line passing by this point should be found)
126 LINE_FORCE_DIRECTION// Line direction is forced (a line with this direction should be found)
127 };
128
132 {
133 SPHERE_FORCE_NOTHING, // Nothing is forced
134 SPHERE_FORCE_RADIUS, // Radius is forced
135 SPHERE_FORCE_CENTER// Center is forced
136 };
137
141 {
142 CYL_FORCE_NOTHING, // Nothing is forced
143 CYL_FORCE_RADIUS, // Radius is forced
144 CYL_INIT_RADIUS, // Radius is initialized (near from its good value)
145 CYL_FORCE_CENTER, // Center is forced (an axis passing through Center should be found)
146 CYL_INIT_CENTER, // Center is initialized (near from its good position)
147 CYL_FORCE_DIRECTION, // Direction is forced (DirectionVector exactly)
148 CYL_INIT_DIRECTION// Direction is approximately (DirectionVector nearly)
149 };
150
154 {
156 CIRCLE_FORCE_RADIUS, // Radius is forced (using the value of the current circle)
157 CIRCLE_FORCE_CENTER, // Center is forced (using the value of the current circle)
158 CIRCLE_FORCE_NORMAL// Normal vector is forced (using the value of the current circle)
159 };
160
162 {
163 BEST_CIRCLE, // Best element extracted from the cloud
164 BEST_CIRCULARITY, // Circularity element extracted from the cloud
165 };
166
168 {
171 HIGH};
172
173#ifndef FCT_DOC
174 enum TunnelExtractionStrategyEnum
175 {
176 TUNNEL_APPROXIMATION,
177 TUNNEL_QUICK_EXTRACTION,
178 TUNNEL_DENSE_EXTRACTION};
179#endif
182public slots: // these functions (slots) will be available in QtScript
183
184
187 // TESTED
189
199 // TESTED
200 Array Chain(Number ChainingDist
203 ) ;
204
207 // TESTED
208 AddPoint(SPoint PointToAdd
210 );
211
215 // TESTED
216 Number GetNumber() ;
217
232 // TESTED
233 Array Explode(
234 Number MaxDistance,
239 Number DelNb,
242 Number MaxNb
246 ) ;
247
259 //TESTED
260 Array Separate(
261 SMultiline iClosedContour,
263 SVector Direction,
265 SPoint PntFirstPlane,
268 SPoint PntSecondPlane,
271 FillCloudEnum fillCloud
273 );
274
286 //TESTED
288 Number NbPointElim,
291 PlaneEnum Force,
295 SPoint iPtToForce = {},
297 SVector DirectionToForce = {},
299 FillCloudEnum fillCloud
302 ) ;
303
314 //TESTED
316 Array<SPoint>
317 SeedPoint,
319 Number Tolerance,
322 PlaneEnum Force,
326 SPoint iAveragePoint = {},
328 SVector DirectionVector = {},
330 FillCloudEnum fillCloud
332 ) ;
333
346 //TESTED
348 MethodBestCircleEnum Method,
350 Number NbPointElim,
353 CircleEnum Force,
359 SPoint iCenter = {},
361 SVector Normal = {},
363 Number Radius,
365 FillCloudEnum fillCloud
367 ) ;
368
380 //TESTED
382 Number NbPointElim,
385 CylinderEnum Force,
394 SPoint iCenter = {},
396 SVector DirectionVector = {},
398 Number Radius,
400 FillCloudEnum fillCloud
402 ) ;
403
415 Array<SPoint>
416 SeedPoint,
418 Number Tolerance,
421 CylinderEnum Force,
430 SPoint iCenter = {},
432 SVector DirectionVector = {},
434 Number Radius,
436 FillCloudEnum fillCloud
438 );
439
452 Number NbPointElim,
455 SphereEnum Force,
459 SPoint iCenter = {},
461 Number Radius,
463 FillCloudEnum fillCloud
465 ) ;
466
478 Array<SPoint>
479 SeedPoint,
481 Number Tolerance,
484 SphereEnum Force,
488 SPoint iCenter = {},
490 Number Radius,
492 FillCloudEnum fillCloud
494 );
495
533 SPoint iSeedPoint,
534 Number iSphereRadius,
535 Number iOptionMask,
536 FillCloudEnum iFillCloud = FILL_NONE) ;
537
549 Array BestCone(
550 FillCloudEnum fillCloud,
552 Number nbPointsElim
554 ) ;
555
579 Array RegionGrowFreePolyline(SPoint iSeedPoint, Number iSamplingStep) ;
580
592 Array BestLine(
593 Number NbPointElim,
596 LineEnum Force,
600 SPoint iAveragePoint = {},
602 SVector DirectionVector = {},
604 FillCloudEnum fillCloud
606 ) ;
607
617 MethodBestSqSlotEnum method,
619 Number NbPointElim,
622 BestRectangleForce Force,
637 SPoint iCenter = {},
639 SVector Normal = {},
641 SVector MainDirection = {},
643 Number Length,
645 Number Width,
647 FillCloudEnum fillCloud
649 ) ;
650
659 SComp FeatureType,
661 Number Angle,
667 Number DistanceTolerance,
671 Boolean useEstimatedDirection,
674 FillCloudEnum fillCloud
676 );
677
688 Number Angle,
691 FillCloudEnum FillCloud
693 );
694
703 SPoly Polyhedron,
705 Number Angle,
711 Number DistanceTolerance,
715 Boolean useEstimatedDirection,
717 Boolean checkForThinParts,
722 FillCloudEnum fillCloud
724 );
732 //TESTED
734 SComp FeatureType,
736 Number Tolerance,
741 FillCloudEnum fillCloud
743 );
751 //TESTED
753 SMultiline Multiline,
755 Number Tolerance,
758 FillCloudEnum fillCloud
760 );
761
770 SPoly Polyhedron,
772 Number Tolerance,
776 FillCloudEnum fillCloud
778 );
779
790 // This list is sorted by number of points with the biggest
791 // first.
792 //TESTED
793 Array ExplodeColor() ;
794
805
821 // TESTED
822 Array NoiseReductionSplit(Number Threshold
824 );
825
836 // TESTED
837 Array Reduce(Number NumberOfPoints
839 ) ;
840
856 // TESTED
858 Number MiniAverageDist,
860 Number MaxAverageDist
864 ) ;
865
873 SVector NormalVectorOfThePlanes,
875 SPoint iPointOnTheFirstPlane,
877 Number NumberOfParallelPlanes,
881 Number DistanceBeetweenParallelPlanes,
883 Number PlaneThickness,
886 Number ChainingDist,
889 Boolean NoiseReduction
891 ) ;
892
895 Boolean hasScanDir() ;
896
924 // TESTED
925 Array Save(
926 String FilePath,
928 QChar decimalSeparator = '.',
930 Boolean EXPORT_SCAN_DIR,
933 SMatrix CoordinateSystemMatrix = {}
936 );
937
947 SPoint iInputPt,
949 SPoint CenterPt,
951 Number Distance
954 ) ;
955
968 Array ProjDir(
969 SPoint iPointToProject,
971 SVector Direction,
973 Number Aperture,
975 Boolean DirectionUnsigned
978 ) ;
979
986 Array ProjectOnPlane(SPlane iPlane
988 ) ;
989
994
1001 Array GetColorGradient() { return SComp::GetColorGradient(); }
1002
1020 Array LoadColorGradient(String FilePath
1022 )
1023 {
1024 return SComp::LoadColorGradient(FilePath);
1025 }
1026
1044 Array SaveColorGradient(String FilePath
1046 )
1047 {
1048 return SComp::SaveColorGradient(FilePath);
1049 }
1050
1058
1066 SVector Direction
1068 ) ;
1069
1077 SVector Direction
1079 ) ;
1080
1090 SVector ViewDirection,
1093 SPoint PointOnPlane,
1096 Boolean Is3dContour
1099 ) ;
1100
1110
1111#ifndef FCT_DOC
1122 Array ExtractTunnel(
1123 SMultiline iNeutralAxis,
1124 Number Step,
1125 TunnelExtractionStrategyEnum ExtractionStrategy,
1126 SCloud iCoarseCloud = nullptr) ;
1127#endif // FCT_DOC
1128
1133 );
1134
1138
1146 Array Compare(
1147 SCloud MeasuredCloud,
1149 Number DistMax,
1151 SVector Direction,
1154 Boolean checkBothDirection,
1156 Number maxCosAngle = -2,
1158 Boolean checkNormals
1160 );
1161
1164 SetPointSize(Number pointSize
1166 );
1167
1171
1174 Number HasColor();
1175
1179
1183
1193
1205
1238 Number iMin,
1240 Number iMax
1242 );
1243
1262 Array ComputeFlatAndCurvedAreas(Number iNeighborhoodRadius = 0.0, Number iOptionMask = 0);
1263
1271
1282 Array FilterMovingObjects(Number iResolutionAt10m, Number iThreshold);
1283
1293 Array FilterByNormalDirection( SVector iDirection, Number iMinCosAngle, Boolean isDirectionSigned);
1294
1303
1325 SPoint iSeedPoint,
1326 Number iTolerance,
1327 Number iCylinderLength,
1328 Number iSearchRange,
1329 Boolean iChainOption);
1330
1342
1345 String toString() ;
1346
1359 Array ScanToMesh(MeshingMode iMeshingMode, Boolean iTextureFromCloud, Boolean iIgnoreScanDir);
1360};
1361
1362// @brief
1363// this class allow to wrap static function to SCloud easily
1364// this allow to wrap constructor more easily the constructor will be declared with the function New(...)
1365class SCloud
1366#ifndef FCT_DOC
1367 : public SObjectStatic
1368#endif // FCT_DOC
1369{
1370 //======================================================================================================================
1371 // INTERNAL FUNCTION
1372 //======================================================================================================================
1373 //======================================================================================================================
1374 // DOCUMENTED FUNCTION
1375 //======================================================================================================================
1376
1377public:
1383 {
1384 _3PI, // ShapeGrabber format
1385 _3PI_TRANSF, // ShapeGrabber format
1388 CSV_ASCII, // excel format
1389 CSV_CSLM, // excel format
1390 GSN_TRANF, // Transform patch into clouds
1391
1392 // must be the last one
1393 AUTO_DETECT
1395
1397 {
1398 Clipped,
1399 Unclipped,
1400 Both
1401 };
1402
1404 {
1405 Inside,
1406 Outside,
1407 Both
1408 };
1409
1410public slots:
1413 // TESTED
1414 static SCloud New();
1415
1418 // TESTED
1419 static SCloud New(SCloud Other);
1420
1430 static Array FromClick();
1431
1435 // TESTED
1436 static Array FromName( String Name) { return SComp::GetFromName<SCloud>(Name); }
1437
1441 // TESTED
1442 static Array FromSel();
1443
1447 // TESTED
1448 static Array All(
1449 Number VisCrit
1454 )
1455 {
1456 return SComp::GetAll<SCloud>(VisCrit);
1457 }
1458
1482 // TESTED
1483 static Array FromFile(
1484 String FileName,
1486 CloudScriptTypesEnum IndexType,
1488 Number NbPtToKeep,
1490 Boolean ImportScanDir
1492 );
1493
1509 static Array FromAsciiFile(
1510 String iFileName,
1512 String iFormat,
1531 Number iNbPtToKeep,
1535 Boolean iImportScanDir
1537 );
1538
1539 /
1540/
1541
1551 // TESTED
1552 static Array Extract(
1553 Array<SComp> TableSComp,
1555 Number SamplingDistance,
1558 Boolean GenerateColor
1562 );
1563
1572 static Array Merge(
1573 Array<SCloud> TableSCloud
1575 );
1576
1586 static Array ColorAlongDir(
1587 Array<SCloud> Clouds,
1589 SVector DirectionVect,
1591 SPoint iOrigin
1593 );
1594
1602 Array<SCloud> iCloudOfPoints,
1604 OutputCloudsTypeClippPlanesEnum iOutputCloudsType
1609 );
1610
1624 Array<SCloud> iCloudOfPoints,
1626 Number iLowerThreshold,
1628 Number iUpperThreshold,
1630 OutputCloudsTypeInspectionValuesEnum iOutputCloudsType
1635 );
1636
1645 Array<SCloud> iCloudOfPoints,
1647 Number iColorR,
1649 Number iColorG,
1651 Number iColorB,
1653 Number iTolerance
1658 );
1659
1667 Array<SCloud> iClouds,
1669 Boolean CreateCloudWithoutScanningPositions
1671 );
1672
1680 Array<SCloud> iClouds,
1682 Boolean CreateCloudWithoutScanPatches
1684 );
1685
1696
1699 static String toString();
1700
1715 static Array ProjectGrid(
1716 SPoly iPoly,
1717 SPoint iOrigin,
1718 SVector iProjectionDir,
1719 SVector iHorizontalDir,
1720 Number iStepHorizontal,
1721 Number iStepVertical);
1722
1734 static Array Classify(
1735 Array<SCloud> iClouds, String iModelName);
1736
1739 static QStringList GetClassificationModels();
1740
1750 static Array GetCategoriesInModel( String iModelName);
1751
1760 static Array GetClassName(Number iClassId);
1761};
1762Q_DECLARE_METATYPE(SCloud::_SCloudDummy);
1763Q_DECLARE_METATYPE(SCloud);
1764
1765#ifndef FCT_DOC
1766} // namespace rsh::ScriptBinding
1767#endif // !FCT_DOC
1768
1769#ifndef FCT_DOC
1770namespace rsh::Script::ScriptConvert
1771{
1772template<>
1773struct TblConvert<SCloud>
1774{
1775 static char GetClassName() { return "SCloud"; } // return the name of the script class mapped with
1776
1777 typedef SCloud ScriptClass;
1779 typedef SCloud DCompClass;
1780
1781 static SCloud GetGCompClass(SCloud _iCompClass)
1782 {
1783 return _iCompClass.GetGCloud();
1784 } // return the SComp from the SComp _iCompClass
1785
1786 static SCloud ForDCompConstructor(SCloud _iEnt)
1787 {
1788 return _iEnt;
1789 } // return the correct SComp to create a new SComp
1790};
1791#endif
1792}
The SCloud class provides point cloud manipulation. The SCloud creation can be done by calling the st...
Definition: SCloud.h:41
Array Save(String FilePath, QChar decimalSeparator='.', Boolean EXPORT_SCAN_DIR, SMatrix CoordinateSystemMatrix={})
Saves the cloud into a file. Supported extensions : .asc, .csv, .igs, .nsd, .pts, ....
BestRectangleForce
How the best square slot is forced.
Definition: SCloud.h:78
static SCloud New(SCloud Other)
Constructs an SCloud by copying the SCloud _iOther.
static Array FromName(String Name)
Search all the component with the given name.
Definition: SCloud.h:1436
Number HasColor()
Check if the cloud has color information.
Array Explode(Number MaxDistance, Number DelNb, Number MaxNb)
Splits a SCloud into a group of point SClouds based on the distance between the points.
PlaneEnum
Bit mask to know which parameter(s) are forced and do not need to be computed.
Definition: SCloud.h:114
@ PLANE_FORCE_NOTHING
Definition: SCloud.h:115
@ PLANE_FORCE_POINT
Definition: SCloud.h:116
Array LocalizeValues(Number iMin, Number iMax)
Extract the minimum and maximum threshold values of an inspected cloud.
static Array GetCategoriesInModel(String iModelName)
Get the categories available in the given model.
static Array Classify(Array< SCloud > iClouds, String iModelName)
Classify the point clouds using a trained model This function is only available if you have the Surve...
static Array Merge(Array< SCloud > TableSCloud)
To merge an array of clouds into one single cloud.
Array CleanFeatureOrientation(SComp FeatureType, Number Angle, Number DistanceTolerance, Boolean useEstimatedDirection, FillCloudEnum fillCloud)
Gets all the points found to be scanned (or estimated) with an angle to the feature normal lower than...
FillCloudEnum
Bit mask to know which cloud(s) should be filled when separated from a feature or calculating a best ...
Definition: SCloud.h:104
@ FILL_ALL
Definition: SCloud.h:105
@ FILL_IN_ONLY
Definition: SCloud.h:106
@ FILL_OUT_ONLY
Definition: SCloud.h:107
Number GetNumber()
Number GetMeanDistance()
Calculate the average distance between points of the cloud.
static Array SeparateWithRealColors(Array< SCloud > iCloudOfPoints, Number iColorR, Number iColorG, Number iColorB, Number iTolerance)
Separate cloud(s) into 2 clouds according to real colors. User has to define a RGB value,...
CloudScriptTypesEnum
The set of possible files to load. The FromFile() function requires to specify extension type for spe...
Definition: SCloud.h:1383
@ GSN_TRANF
Definition: SCloud.h:1390
@ ASC_ESRI
Definition: SCloud.h:1386
@ CSV_ASCII
Definition: SCloud.h:1388
@ _3PI_TRANSF
Definition: SCloud.h:1385
@ CSV_CSLM
Definition: SCloud.h:1389
@ ASC_SCAN
Definition: SCloud.h:1387
@ _3PI
Definition: SCloud.h:1384
Array BestCircle(MethodBestCircleEnum Method, Number NbPointElim, CircleEnum Force, SPoint iCenter={}, SVector Normal={}, Number Radius, FillCloudEnum fillCloud)
Calculates the best circle fitting with the cloud in the mean squares sense. Best fit with all the po...
Array GetHighestPoint(SVector Direction)
Get the highest point according to the Direction.
Array ReduceBest(Number MiniAverageDist, Number MaxAverageDist)
Calculates a reduced point cloud keeping only the "best" points as much as possible evenly spaced.
Array Separate(SMultiline iClosedContour, SVector Direction, SPoint PntFirstPlane, SPoint PntSecondPlane, FillCloudEnum fillCloud)
Makes a copy of points found INside and (or) OUTside the box and preserve the current cloud.
MethodBestSqSlotEnum
method to measure the slot (best, inner, outer)
Definition: SCloud.h:72
static Array FromClick()
Launches a click interaction to select a SComp in the scene.
Array ExplodeByClass()
Explode a classified cloud by class.
Array FilterByNormalDirection(SVector iDirection, Number iMinCosAngle, Boolean isDirectionSigned)
Filter a cloud in function of the direction of the normals. The missing normals will be computed and ...
Array ExtractMultilineFromSeed(SPoint iSeedPoint, Number iTolerance, Number iCylinderLength, Number iSearchRange, Boolean iChainOption)
Extract a polyline inside a section cloud, from a seed point.
SetPointSize(Number pointSize)
New point size.
static Array SeparateWithScanningPositions(Array< SCloud > iClouds, Boolean CreateCloudWithoutScanningPositions)
Separate cloud(s) into many clouds according to their scanning positions.
Array BestLine(Number NbPointElim, LineEnum Force, SPoint iAveragePoint={}, SVector DirectionVector={}, FillCloudEnum fillCloud)
Calculates the best line fitting with the cloud.
Number HasInspection()
Check if the cloud has inspection information.
static Array SeparateWithClippingObjects(Array< SCloud > iCloudOfPoints, OutputCloudsTypeClippPlanesEnum iOutputCloudsType)
Separate cloud(s) according to active clipping objects.
Clear()
To deallocate memory of the object.
Array ExtractCylinder(Array< SPoint > SeedPoint, Number Tolerance, CylinderEnum Force, SPoint iCenter={}, SVector DirectionVector={}, Number Radius, FillCloudEnum fillCloud)
Extract the cylinder region on the current cloud starting from seed point(s).
OutputCloudsTypeInspectionValuesEnum
Definition: SCloud.h:1404
Boolean hasScanDir()
Allows the user to know if the cloud contains a scanning direction.
SphereEnum
Bit mask to know which parameter(s) are forced and do not need to be computed.
Definition: SCloud.h:132
@ SPHERE_FORCE_RADIUS
Definition: SCloud.h:134
@ SPHERE_FORCE_NOTHING
Definition: SCloud.h:133
Array Reduce(Number NumberOfPoints)
Calculates a reduced point cloud with points evenly spaced (as much as possible).
AddPoint(SPoint PointToAdd)
Add a new point to the cloud.
static Array SeparateWithScanPatches(Array< SCloud > iClouds, Boolean CreateCloudWithoutScanPatches)
Separate cloud(s) into many clouds according to scan patches.
Array LoadColorGradient(String FilePath)
Loads the color gradient from a file (*.rsi binary file).
Definition: SCloud.h:1020
Array SaveColorGradient(String FilePath)
Saves the color gradient into a file (*.rsi binary file).
Definition: SCloud.h:1044
Array ClosestPoint(SPoint iInputPt, SPoint CenterPt, Number Distance)
Finds the point in the current cloud that is the closest from an input point and optionally inside a ...
static SCloud New()
Default constructor to create an empty new SCloud.
Array ExplodeColor()
Explodes a SCloud by inspection colors or real colors if no inspection colors.
Array BestPlane(Number NbPointElim, PlaneEnum Force, SPoint iPtToForce={}, SVector DirectionToForce={}, FillCloudEnum fillCloud)
Calculates the best plane fitting with all points from the cloud.
Array BestCone(FillCloudEnum fillCloud, Number nbPointsElim)
Calculates the best cone fitting with the cloud.
static Array ColorAlongDir(Array< SCloud > Clouds, SVector DirectionVect, SPoint iOrigin)
Color the clouds along a direction with a gradient.
Array BestSqSlot(MethodBestSqSlotEnum method, Number NbPointElim, BestRectangleForce Force, SPoint iCenter={}, SVector Normal={}, SVector MainDirection={}, Number Length, Number Width, FillCloudEnum fillCloud)
Calculates the best square slot fitting with the cloud.
Array SeparateMultiline(SMultiline Multiline, Number Tolerance, FillCloudEnum fillCloud)
Separates the points in two parts with an offset on both sides of the multiline.
static Array GetClassName(Number iClassId)
Get the class name for a given class ID.
CircleEnum
Bit mask to know which parameter(s) are forced and do not need to be computed.
Definition: SCloud.h:154
@ CIRCLE_FORCE_CENTER
Definition: SCloud.h:157
@ CIRCLE_FORCE_RADIUS
Definition: SCloud.h:156
@ CIRCLE_FORCE_NOTHING
Definition: SCloud.h:155
Array GetScanningPositions()
Extract the scanning positions of the cloud.
MethodBestCircleEnum
Definition: SCloud.h:162
@ BEST_CIRCULARITY
Definition: SCloud.h:164
@ BEST_CIRCLE
Definition: SCloud.h:163
CylinderEnum
Bit mask to know which parameter(s) are forced and do not need to be computed.
Definition: SCloud.h:141
@ CYL_INIT_RADIUS
Definition: SCloud.h:144
@ CYL_FORCE_CENTER
Definition: SCloud.h:145
@ CYL_FORCE_RADIUS
Definition: SCloud.h:143
@ CYL_INIT_CENTER
Definition: SCloud.h:146
@ CYL_FORCE_NOTHING
Definition: SCloud.h:142
@ CYL_FORCE_DIRECTION
Definition: SCloud.h:147
Array GetConvexContour(SVector ViewDirection, SPoint PointOnPlane, Boolean Is3dContour)
Computes the convex contour of the cloud according to a direction.
Number GetPointSize()
Return the current point size.
static Array FromSel()
To get all the selected SComp.
static Array FilterWithInspectionValues(Array< SCloud > iCloudOfPoints, Number iLowerThreshold, Number iUpperThreshold, OutputCloudsTypeInspectionValuesEnum iOutputCloudsType)
Separate cloud(s) into 2 clouds according to inspection values.
static QStringList GetClassificationModels()
Get a table of the names of all the classification models available.
Array Compare(SCloud MeasuredCloud, Number DistMax, SVector Direction, Boolean checkBothDirection, Number maxCosAngle=-2, Boolean checkNormals)
Calculates the distances between 2 point clouds.
Array ProjDir(SPoint iPointToProject, SVector Direction, Number Aperture, Boolean DirectionUnsigned)
Calculates the projection of a point on a cloud.
static Array All(Number VisCrit)
To get all the SComp in the document.
Definition: SCloud.h:1448
Array BestCylinder(Number NbPointElim, CylinderEnum Force, SPoint iCenter={}, SVector DirectionVector={}, Number Radius, FillCloudEnum fillCloud)
Initialise a slot using the best slot extracted from a cloud (inner, outer...)
Array SeparateFeature(SComp FeatureType, Number Tolerance, FillCloudEnum fillCloud)
Gets all the points found inside (or outside) a feature (circle, cylinder, plane).
Array ComputeFlatAndCurvedAreas(Number iNeighborhoodRadius=0.0, Number iOptionMask=0)
Computes the flat and curved areas on the cloud.
SetCloudRepresentation(CloudRepresentationTypeEnum Representation)
The representation of the component is modified.
static Array ExplodeCloudClassification(SCloud iCloud)
Split a point cloud that has been classified into several clouds according the point classes.
Array ExtractSphere(Array< SPoint > SeedPoint, Number Tolerance, SphereEnum Force, SPoint iCenter={}, Number Radius, FillCloudEnum fillCloud)
Extract the spherical region on the current cloud starting from seed point(s).
Array GetLowestPoint(SVector Direction)
Get the lowest point according to the Direction.
static Array FromAsciiFile(String iFileName, String iFormat, Number iNbPtToKeep, Boolean iImportScanDir)
Reads an ascii point cloud.
Array ConvertInspectionToColor()
Convert the gradient of inspection into color for each point.
Array ExplodeWithInspectionSteps()
Splits the cloud according to the inspection steps.
Array CleanWithLocalNormal(Number Angle, FillCloudEnum FillCloud)
Cleans the cloud according to the angle between: .
Array FlipIntensities()
Turns intensity values upside down.
Array ExtractMedianPointOnWhiteLine(SPoint iSeedPoint, Number iSphereRadius, Number iOptionMask, FillCloudEnum iFillCloud=FILL_NONE)
This function searches a point on the median of the nearest white line of the seed point,...
Number HasGriddedInformation()
Check if points are organized as a gridded structure.
LineEnum
Bit mask to know which parameter(s) are forced and do not need to be computed.
Definition: SCloud.h:123
@ LINE_FORCE_POINT
Definition: SCloud.h:125
@ LINE_FORCE_NOTHING
Definition: SCloud.h:124
Array GetColorGradient()
To get the color gradient of the SCloud.
Definition: SCloud.h:1001
CloudRepresentationTypeEnum
The different representation types for clouds. Use SCloud.FLAT.
Definition: SCloud.h:55
@ CLOUD_DEBUG_SPLATTING_SMOOTH
Definition: SCloud.h:64
@ CLOUD_COLORED
Definition: SCloud.h:61
@ CLOUD_FLAT
Definition: SCloud.h:57
@ CLOUD_SMOOTH
Definition: SCloud.h:58
@ CLOUD_SMOOTH_BACK
Definition: SCloud.h:59
@ CLOUD_INSPECTION
Definition: SCloud.h:62
@ CLOUD_DEBUG_SPLATTING_COLORED
Definition: SCloud.h:65
@ CLOUD_CLASSIFICATION
Definition: SCloud.h:63
Array FilterMovingObjects(Number iResolutionAt10m, Number iThreshold)
Function allowing to separate point cloud into moving and fixed points.
CloudRepresentationTypeEnum GetCloudRepresentation()
Return the current representation.
static Array FromFile(String FileName, CloudScriptTypesEnum IndexType, Number NbPtToKeep, Boolean ImportScanDir)
Imports clouds from a file. Authorized file extensions : .ac, .asc, .csv, .fls, .fws,...
Array ProjectOnPlane(SPlane iPlane)
Projects the point cloud onto a plane.
static String toString()
Get the type of the variable.
Array RegionGrowFreePolyline(SPoint iSeedPoint, Number iSamplingStep)
Extract polyline using a seed point on the line and a sampling step that includes the line.
String toString()
Get the type of the variable.
Array NoiseReductionSplit(Number Threshold)
The goal of noise reduction is to split the cloud in 2 clouds according to a noise reduction threshol...
OutputCloudsTypeClippPlanesEnum
Definition: SCloud.h:1397
Array BestSphere(Number NbPointElim, SphereEnum Force, SPoint iCenter={}, Number Radius, FillCloudEnum fillCloud)
Calculates the best sphere fitting with the cloud.
Array CleanPolyOrientation(SPoly Polyhedron, Number Angle, Number DistanceTolerance, Boolean useEstimatedDirection, Boolean checkForThinParts, FillCloudEnum fillCloud)
Gets all the points found inside (or outside) a SPoly.
Array Chain(Number ChainingDist)
Chains the current point cloud and creates the shortest SMultiline(s).
Array GetCentroid()
To compute the Centroid of a point cloud.
Array SectionPlane(SVector NormalVectorOfThePlanes, SPoint iPointOnTheFirstPlane, Number NumberOfParallelPlanes, Number DistanceBeetweenParallelPlanes, Number PlaneThickness, Number ChainingDist, Boolean NoiseReduction)
Intersection of a point cloud by parallel planes.
Array ScanToMesh(MeshingMode iMeshingMode, Boolean iTextureFromCloud, Boolean iIgnoreScanDir)
Create a mesh from predefined settings.
Array ExtractPlane(Array< SPoint > SeedPoint, Number Tolerance, PlaneEnum Force, SPoint iAveragePoint={}, SVector DirectionVector={}, FillCloudEnum fillCloud)
Extract the planar region on the current cloud starting from seed point(s).
Array SeparatePoly(SPoly Polyhedron, Number Tolerance, FillCloudEnum fillCloud)
Gets all the points found inside (or outside) a SPoly.
SCloudIterator GetIterator()
Array GetConvexHull()
Compute the convex hull of a point cloud.
static Array Extract(Array< SComp > TableSComp, Number SamplingDistance, Boolean GenerateColor)
To extract the cloud from an SComp array.
static Array ProjectGrid(SPoly iPoly, SPoint iOrigin, SVector iProjectionDir, SVector iHorizontalDir, Number iStepHorizontal, Number iStepVertical)
Calculate the grid cloud projected onto a mesh.
MeshingMode
Definition: SCloud.h:168
@ MEDIUM
Definition: SCloud.h:170
@ LOW
Definition: SCloud.h:169
This class allow the user to access to cloud coordinate.
Definition: SCloudIterator.h:26
The SComp class is an abstract class. Use derived classes SCircle, SCylinder, SCloud,...
Definition: SComp.h:32
Matrix with 3 lines and 4 columns to make any transformation. This class should be used in order to a...
Definition: SMatrix.h:21
Class to store a multiline, that is: an ordered list of points. The SMultiline creation can be done b...
Definition: SMultiLine.h:24
Plane manipulation class. The SPlane creation can be done by calling the static functions: .
Definition: SPlane.h:24
3D point manipulation class. The SPoint creation can be done by calling the static functions:
Definition: SPoint.h:23
The SPoly class provides triangular mesh(es) manipulation. The SPoly creation can be done by calling ...
Definition: SPoly.h:39
The mathematical object vector.
Definition: SVector3.h:26