View Issue Details

IDProjectCategoryView StatusLast Update
0029325Open CASCADEOCCT:Modeling Algorithmspublic2022-07-11 16:11
Reportergka Assigned Togka  
PrioritynormalSeverityfeature 
Status verifiedResolutionfixed 
Product Version7.2.0 
Target Version7.7.0 
Summary0029325: Modeling Algorithms - add tool BRepLib_PointCloudShape for generation point cloud for specified shape
DescriptionAdded tool BRepLib_PointCloudShape to generate point cloud by specified shape by two ways:
1. Generation points by nodes of existing triangulation
2. Generation points by faces with specified density.
Steps To Reproducede_mesh/ply_write/equerre
TagsNo tags attached.
Test case numberde_mesh/ply_write/equerre

Attached Files

  • as1-pnts.ply.7z (868,859 bytes)
  • as1-tris.ply.7z (33,285 bytes)
  • as1-pnts.png (157,356 bytes)

Relationships

related to 0025476 assignedkgv Open CASCADE Data Exchange - implement import of mesh data from files in PLY format 
related to 0033055 verifiedatychini Open CASCADE Data Exchange, RWPly_Provider - remove dependency from BRepLib_PointCloudShape 

Activities

git

2017-11-15 11:28

administrator   ~0072255

Branch CR29325 has been created by gka.

SHA-1: 7e3e50312f6f2890d32a5ca13d2d73cf59c2122d


Detailed log of new commits:

Author: gka
Date: Wed Nov 8 17:13:53 2017 +0300

    Tool for generation points by shape two ways:
    1. Generation points with specified density
    2. Generation points using triangulation Nodes
    
    Generated points can be:
    1.shown in the Viewer 3D with help Test Harness command "vpointcloud"
    2. written in the ply file with help Test Harness command "writepointcloud_ply"

asuraven

2021-11-15 18:33

developer   ~0105202

git

2021-11-16 15:56

administrator   ~0105216

Branch CR29325_1 has been created by asuraven.

SHA-1: d8430b30faace18e6e11532f7aa90923b527e5ad


Detailed log of new commits:

Author: gka
Date: Wed Nov 8 17:13:53 2017 +0300

    Tool for generation points by shape two ways:
    1. Generation points with specified density
    2. Generation points using triangulation Nodes
    
    Generated points can be:
    1.shown in the Viewer 3D with help Test Harness command "vpointcloud"
    2. written in the ply file with help Test Harness command "writepointcloud_ply"

asuraven

2021-11-16 17:53

developer   ~0105223

asuraven

2021-11-18 18:28

developer   ~0105245

git

2021-11-22 13:59

administrator   ~0105349

Branch CR29325_1 has been updated forcibly by asuraven.

SHA-1: feae79cb14f61f4958fef1474652d61270dcd25d

git

2021-11-22 15:59

administrator   ~0105355

Branch CR29325_1 has been updated forcibly by asuraven.

SHA-1: 8f54659dcb4026d5eca584da9ea8d89fe0b967c0

asuraven

2021-11-23 12:50

developer   ~0105369

Dear Michael, please review branch CR29325_1
Tests results are here: http://jenkins-test-occt.nnov.opencascade.com/view/CR29325_1-master-ASURAVEN/view/COMPARE/
Also please pay your attention to the differences in 'point_cloud sphere' screenshots: http://occt-tests/CR29325_1-master-ASURAVEN-OCCT/Windows-64-VC14/diff-Windows-64-VC14-image.html

msv

2021-11-23 21:43

developer   ~0105381

Please update commit message according to requirements.

Remove the data files from commit. They must be put into tests data repository.

In BRepLib/FILES, put new files in the proper place by alphabet.

In new C++ files, update the copyright string to "(c) 2021".

src/BRepLib/BRepLib_PointCloudShape.hxx
- Useless include of TColgp_HSequenceOfXYZ.hxx, NCollection_IndexedDataMap.hxx, NCollection_DataMap.hxx.
- In the class desacription, tell about two ways of points generation.
- In arguments of all method use 'const' for Standard_Real values.
- Avoid using Standard_EXPORT for inline methods.
- In the method SetDistance, tell something about the sign of the distance. Can it be negative to say that the points are to be get in the negative direction of the normal?
- Misprints "eqw\ual", "froim"
- Rename the methods NbPointsDensity/GetPointsDensity/NbPointsTriangulation/GetPointsTriang to something like NbPointsByDensity/GeneratePointsByDensity/NbPointsByTriangulation/GeneratePointsByTriangulation.

src/BRepLib/BRepLib_PointCloudShape.cxx
- Remove include of Precision.hxx, TopoDS_Shape.hxx, they are included in the header.
- 41: returns false while the method must return int.
- 43: this comment is not relevant
- 49: too long line. I propose to hide all the logic inside the function faceArea. It will return from the map for the known faces.
- 149: this comment is not relevant
- 179: consider the case aSurf.IsNull()
- 192-211: incorrect indent
- 183: before using rand(), call srand() to ensure stable behavior.
- 207,270: fabs() is extra, as rand() returns non-negative value.
The function rand is not thread-safe, so, it is better to add a note in the class description that generation of points by density is not thread safe.
- 233: It is better:
const gp_Trsf& aTrsf = aLoc.Transformation();
- 262: normal must be normalized after transformation.

src/ViewerTest/ViewerTest_ObjectCommands.cxx
- 6298: misprint "array pg points"
- 6384: use Draw::Atof
- 6429: aFlags is not passed to constructor of Graphic3d_ArrayOfPoints.
- 7163: misprint "arbitary"
- 7176: misprint "value opf tolerance"
- 6473: before using rand(), call srand() to ensure stable behavior.

src/XSDRAWSTLVRML/XSDRAWSTLVRML.cxx
- 88: duplicate include
- 2061: change class prefix to something else than Draw, because it is not the Draw package. (May be XSDRAWSTLVRML?)
- 2069,2070,2232: too long lines
- 2073: do not declare default values if the method is used only explicitly.
- 2155: misprint "shoul be"
- 2162: misprint "should hve"
Use Draw::Atof instead of atof.
- 2219: "i" is not incremented in this cycle.
- 2355: insert space between "]["

About tests.
Why is tests category named AssemblyControl? I think the tests could be created in de_mesh.
The comment in each file:
# !!!! This file is generated automatically, do not edit manually

has no any sense.
cd [locate_data_file AssemblyControl]

Avoid changing directory in the test.

tests/AssemblyControl/writeply/end
- The header comments are not relevant, dump_file is not used.
- Avoid making directory. Write files using the path ${imagedir}.

 if {$nbsh > 1} {
    puts "Error: Number of subhapes: $nbsh"

Why this condition is considered as error?

LocDump a_1
LocSet a_1 
LocDump a_1

What is the purpose of these lines?

These test cases look to have no value, as they do not check the result and do not take any snapshot.

As about the differences in 'point_cloud sphere' tests, they look as regressions and need to be analyzed.

asuraven

2021-11-24 20:16

developer   ~0105403

asuraven

2021-11-26 16:00

developer   ~0105451

git

2021-11-30 18:32

administrator   ~0105546

Branch CR29325_2 has been created by asuraven.

SHA-1: 10de37847359a09c8065ad25db90668e9d34fa41


Detailed log of new commits:

Author: gka
Date: Wed Nov 8 17:13:53 2017 +0300

    0029325: Modeling Algorithms - add tool BRepLib_PointCloudShape for generation point cloud for specified shape
    
    Tool for generation points by shape two ways:
    1. Generation points with specified density
    2. Generation points using triangulation Nodes
    
    Generated points can be:
    1.shown in the Viewer 3D with help Test Harness command "vpointcloud"
    2. written in the ply file with help Test Harness command "writepointcloud_ply"

asuraven

2021-11-30 18:34

developer   ~0105547

Last edited: 2021-12-06 14:18

git

2021-12-03 18:04

administrator   ~0105635

Branch CR29325_2 has been updated forcibly by asuraven.

SHA-1: 8eff961cecfc20e3a78932f3f3343fdb0240f35b

git

2021-12-06 19:06

administrator   ~0105706

Branch CR29325_2 has been updated forcibly by asuraven.

SHA-1: 2f1be3328e6b682b991ce8941e1bca9fb2faeba0

git

2021-12-07 13:10

administrator   ~0105718

Branch CR29325_2 has been updated forcibly by asuraven.

SHA-1: b263e1027db52571d69db668d082e5433fd92910

asuraven

2021-12-07 13:23

developer   ~0105719

remarks fixed in branch CR29352_2
tests results: http://jenkins-test-occt/view/CR29325_2-master-ASURAVEN/view/COMPARE/
Differences in sphere_rand.png images are explained by VPointCloud() code change (
exclude strange hasNormals = Standard_False; setting if option '-randcolors' is given in 'vpointcloud' command
Differences in sphere_tex1/2/3.png images looks like an improvement because it excludes latitudinal variations in the color of points on the sphere

kgv

2021-12-07 14:10

developer   ~0105721

+Standard_Real BRepLib_PointCloudShape::faceArea(const TopoDS_Shape& theShape)
+{
+  if (myFaceArea.IsBound(theShape))
+  {
+    return myFaceArea.Find(theShape);
+  }

Standard_Real anArea = 0.0;
if (myFaceArea.Find (theShape, anArea)) { return anArea; }

+  TopExp_Explorer aExpF(myShape, TopAbs_FACE);
+  Standard_Real anAreaMin = Precision::Infinite();
+  for (; aExpF.More(); aExpF.Next())

Please move iterator declaration into for() header.

+}
+//=======================================================================

Missing empty line.

+  std::srand((unsigned int)std::time(0));

It doesn't look like a good idea to use global randomizer for this purpose.
Consider using std::mt19937 or some other suitable algorithm instead.

+  Standard_Integer i =1;
+ 
+  for (; i <= aNodes.Length() ; i++)
+  {

Please move iterator declaration into for() header.

+    gp_Vec aNorm(0.,0.,0.);
+    if (aTriangulation->HasNormals())
+    {
+      aNorm = aTriangulation->Normal(i);
+    }
+    else if (aTriangulation->HasUVNodes())
+    {

It would be preferred to use common logic for normals computation - e.g. reuse StdPrs_ToolTriangulatedShape::ComputeNormals() or similar (which uses GeomLib::NormEstim()).

+
+
+

Please remove redundant triple and double empty lines from new code.

+//! Con be used to simulation of points obtained in result of scan of shape.

Please fix misprints ("Con").
"scan" -> "laser scan" for clarity?

+class BRepLib_PointCloudShape
+{
+public:

Please add allocator macros.

+  void SetDistance(const Standard_Real theDist)
+  {
+    myDist = theDist;
+  }

For convenience and clarity, it would be nice having also getters, with default values documented.

+  Standard_EXPORT  void AddColor(const TopoDS_Shape& theShape, const Quantity_Color& theColor);
+  Standard_Boolean addDensityPoints(const TopoDS_Shape& theFace );
+  virtual void addPoint( const gp_Pnt& thePoint,const gp_Vec& theNorm, const TopoDS_Shape& theFace) =0;

Unexpected extra spaces. Please reformat.

+  //! Method to clear maps
+   Standard_EXPORT virtual void clear();
+
+
+private:

Virtual destructor is missing. Private class fields look confusing - maybe they should be better protected?

+  BRepLib_PointCloudShape(const TopoDS_Shape& theShape, const Standard_Real theTol = Precision::Confusion()) : 
+      myShape(theShape), myDist(0.0), myTol(theTol), myNbPoints(0) {}

Better moving to .cxx.

-        theTrihedron->SetTextColor (aColor);
-      }
+      theTrihedron->SetTextColor (aColor);
+    }
...
   switch (argc)
-  {
+      {
...
-      Standard_Real aRed = Draw::Atof (argv[2]);
-      Standard_Real aGreen = Draw::Atof (argv[3]);
-      Standard_Real aBlue = Draw::Atof (argv[4]);
+      Standard_Real aRed = Draw::Atof(argv[2]);
+      Standard_Real aGreen = Draw::Atof(argv[3]);
+      Standard_Real aBlue = Draw::Atof(argv[4]);

Please revert unrelated changes breaking formatting.

+  virtual void addPoint( const gp_Pnt& thePoint, const gp_Vec& theNorm, const TopoDS_Shape& /*theFace*/)

override is missing.

+  Standard_EXPORT PlyWriter_PointCloudShape(const TopoDS_Shape& theShape, 

Redundant Standard_EXPORT.

+    myfileply.open(theFileName);

Files should be opened using OSD_FileSystem::DefaultFileSystem().

+    myfileply << "property float x" << "\n";
+    myfileply << "property float y" << "\n";
+    myfileply << "property float z" << "\n";

Please avoid repertitive "myfileply <<" where single string constant could be joined.

+    myfileply << "format ascii 1.0" << std::endl;
+    myfileply << "comment array of emulated scan points" << "\n";

Please use "\n" consistently and avoid redundant <<.

+  virtual void addPoint (const gp_Pnt& thePoint, const gp_Vec& theNorm, const TopoDS_Shape& theFace)
...
+  };

Unexpected semicolon.

+  theCommands.Add ("meshinfo",             "displays the number of nodes and triangles",   __FILE__, meshinfo,        g );
+  theCommands.Add ("writepointclouds_ply", "writepointclouds_ply filename shape [-dist val] [-dens val] [-tol val] [-color r g b]", __FILE__, writepointclouds_ply, g);

Command name doesn't follow name conventions of this Draw Harness plugin, and lacks description.

 007 obj_write
+008 writeply

Please follow name conventions within this test grid - e.g. "ply_write" would be more expected.

kgv

2021-12-07 14:14

developer   ~0105722

Last edited: 2021-12-07 14:15

> Differences in sphere_tex1/2/3.png images looks like an improvement because
> it excludes latitudinal variations in the color of points on the sphere
These test cases are expected to test visualization feature - texture mapping on a point set.

After modifications texture shape became unrecognizable - either test become broken or non-representative.
In the latter case - please improving test. In former case - please fix functionality.

msv

2021-12-07 14:56

developer   ~0105724

  std::srand((unsigned int)std::time(0));

What for time() is used for the seed? In contrary, we need repetitive sequence so that the test was stably reproducible each time. Use simple integer for the seed like 0.

msv

2021-12-07 15:09

developer   ~0105725

//! Generation of points by density using the GeneratePointsByDensity() functionis not thread safe.

Insert the space in "functionis".

    Standard_Integer aNbPoints = isDensityPoints ? aPoitCloudTool.NbPointsByDensity(aDensity) : aPoitCloudTool.NbPointsByTriangulation();
...
    Standard_Boolean isDone = (isDensityPoints ? aPoitCloudTool.GeneratePointsByDensity(aDensity) : aPoitCloudTool.GeneratePointsByTriangulation());

Too long lines.

git

2021-12-07 21:07

administrator   ~0105730

Branch CR29325_3 has been created by asuraven.

SHA-1: d7111c0b8b37cb5afee2d9692db2dd0d0ef31edc


Detailed log of new commits:

Author: gka
Date: Wed Nov 8 17:13:53 2017 +0300

    0029325: Modeling Algorithms - add tool BRepLib_PointCloudShape for generation point cloud for specified shape
    
    Tool for generation points by shape two ways:
    1. Generation points with specified density
    2. Generation points using triangulation Nodes
    
    Generated points can be:
    1. shown in the Viewer 3D with help Test Harness command "vpointcloud"
    2. written in the ply file with help Test Harness command "writeply"

git

2021-12-23 19:02

administrator   ~0106168

Branch CR29325_3 has been updated forcibly by asuraven.

SHA-1: 48502c449bcf06f7826bc649f204de79ae5ea5e4

git

2021-12-24 09:11

administrator   ~0106174

Branch CR29325_3 has been updated forcibly by asuraven.

SHA-1: 2ebac546fd47d3dcd226fb662a0680d626ff483e

asuraven

2021-12-24 11:09

developer   ~0106176

the second iteration's remarks fixed in branch CR29325_3
tests results: http://jenkins-test-occt.nnov.opencascade.com/view/CR29325_3-master-ASURAVEN/view/COMPARE/

asuraven

2021-12-24 11:11

developer   ~0106177

The second iteration's remarks fixed in branch CR29325_3
tests results: http://jenkins-test-occt.nnov.opencascade.com/view/CR29325_3-master-ASURAVEN/view/COMPARE/

git

2022-01-10 13:24

administrator   ~0106276

Branch CR29325_3 has been updated forcibly by asuraven.

SHA-1: 69dce0f640416649ac25c2dfb86889e3845e3f3b

asuraven

2022-01-10 17:57

developer   ~0106289

Branch CR29325_3 rebased. New tests results:http://jenkins-test-occt.nnov.opencascade.com/view/CR29325_3-master-ASURAVEN/view/COMPARE/
@msv please review

kgv

2022-01-10 20:45

developer   ~0106291

+//=======================================================================
+//function : NbPointsByDensity
+//purpose  : 
+//=======================================================================
+
+BRepLib_PointCloudShape::BRepLib_PointCloudShape(const TopoDS_Shape& theShape, const Standard_Real theTol):

Name mismatch.

+
+

Redundant double empty line.

+
+Standard_Integer BRepLib_PointCloudShape::NbPointsByDensity(const Standard_Real theDensity)

Missing header.

+  if(!myFacePoints.Extent())

if (myFacePoints.Extent() == 0)

+  Standard_Integer nbAdded = 0 ;

aNbAdded

+  if (myFaceArea.IsBound(theShape))
+  {
+    Standard_Real anArea = 0.0;
+    if (myFaceArea.Find(theShape, anArea))
+    {

First check is redundant.

+  if (!aNbPnts)

if (aNbPnts == 0)

+  const Poly_ArrayOfNodes& aNodes = aTriangulation->InternalNodes();

Please don't use internal API for that purpose - use Poly_Triangulation::Node().

+  TopLoc_Location aLoc1;
...
+  for (Standard_Integer i = 1; i <= aNodes.Length(); i++)
...
+      aP1.Transform(aTrsf);

Please defined gp_Trsf out of TopLoc_Location outside of the loop.

+  virtual ~BRepLib_PointCloudShape() {};

Unexpected semicolon.

+  Standard_Real GetDistance()

const

+  //! by critera : 10 points per minimal face area 

Are there more than one criterion?
Period is missing.

+   //! Compute area of the specified face
+  Standard_Real faceArea(const TopoDS_Shape& theShape);

Broken indentation.

+ protected:
...
+  //! Computes default density points per face
+  Standard_Real computeDensity();

This and other protected methods - EXPORT is missing.

+  //! Method to clear maps
+   Standard_EXPORT virtual void clear();

Broken indentation.

+
+class BrepLib_ToolTriangulatedShape

Missing description.

+  Standard_EXPORT ViewerTest_PointCloudShape(const TopoDS_Shape& theShape, 
+                                             Standard_Real theTol = Precision::Confusion()) :
+    BRepLib_PointCloudShape(theShape, theTol) 
+  {}
...
+  Standard_EXPORT void Init( const Handle(Graphic3d_ArrayOfPoints)& thePoints)
   {

Unexpected Standard_EXPORT.

+  //! Constructor initialized 

???

-    if (aFlag == "-randcolors"
-     || aFlag == "-randcolor")
+    if (aFlag == "-randcolors" || aFlag == "-randcolor")
...
-    else if (aFlag == "-normals"
-          || aFlag == "-normal")
+    else if (aFlag == "-nonormals" || aFlag == "-nonormal")
+    {

Unrelated - please revert.

+    Message::SendFail ("Error: wrong number of arguments! See usage:");
+      theDI.PrintHelp (theArgs[0]);
+      return 1;

Broken indentation.

+  Standard_EXPORT Standard_Boolean Init(const Standard_CString& theFileName, 

Unexpected Standard_EXPORT.
Redundant reference `const Standard_CString&` -> `const Standard_CString`.

+    di << "Invalid number of arguments should be: writepointclouds_ply filename shape [-dist val] [-dens val] [-tol val] [-color r g b]\n";

Please avoid duplicating command description.

+    else if(aStr == "-color")
+    {
+      Standard_Real aVal[3];

Draw::ParseColor().

+    else if (aStr == "-tol")
+    {
+      if (k == argc - 1 || argv[k + 1][0] == '-')
+      {
+        continue;
+      }

Please do not silently ignore syntax errors.

+    if (aStr == "-nonormal")
+    {
+      hasNormals =Standard_False;

Draw::ParseOnOffNoIterator().
if (aStr == "-nonormal" || aStr == "-normal")

+  return 0;
+  
+}

Unexpected empty line.

 # mode with normals
-vpointcloud p s -normals
+vpointcloud p s 

What for this change?

msv

2022-01-11 13:10

developer   ~0106295

Please rename the class BrepLib_ToolTriangulatedShape to BRepLib_ToolTriangulatedShape.

src/XSDRAWSTLVRML/XSDRAWSTLVRML.cxx
The Close() method of PlyWriter_PointCloudShape became returning boolean, but this is not used.

git

2022-01-11 17:55

administrator   ~0106304

Branch CR29325_3 has been updated by asuraven.

SHA-1: 4f2652d56365d8db3340ee0a639e2e511fa3ce8b


Detailed log of new commits:

Author: asuraven
Date: Tue Jan 11 17:55:18 2022 +0300

    0029325: kgv remarks

git

2022-01-13 17:47

administrator   ~0106344

Branch CR29325_3 has been updated forcibly by asuraven.

SHA-1: e9b75127d62970929672d88ca54ca28973625366

git

2022-01-13 17:48

administrator   ~0106345

Branch CR29325_4 has been created by asuraven.

SHA-1: d24122cb25d6499118de364e761565773457a250


Detailed log of new commits:

Author: gka
Date: Wed Nov 8 17:13:53 2017 +0300

    0029325: Modeling Algorithms - add tool BRepLib_PointCloudShape for generation point cloud for specified shape
    
    Tool for generation points by shape two ways:
    1. Generation points with specified density
    2. Generation points using triangulation Nodes
    
    Generated points can be:
    1. shown in the Viewer 3D with help Test Harness command "vpointcloud"
    2. written in the ply file with help Test Harness command "writeply"

git

2022-01-14 16:52

administrator   ~0106368

Branch CR29325_4 has been updated forcibly by asuraven.

SHA-1: 91f2d1f4e9f52e2d32ee75154bcb70195e8c3a4f

git

2022-01-17 12:33

administrator   ~0106427

Branch CR29325_4 has been updated forcibly by asuraven.

SHA-1: 4a504d94f99ff56130a9ccaab8bf65dacbbcb550

asuraven

2022-01-17 16:59

developer   ~0106429

remarks fixed in branch CR29325_4
Tests results: http://jenkins-test-occt.nnov.opencascade.com/view/CR29325_4-master-ASURAVEN/view/COMPARE/
'-normals' option option has been removed from /v3d/point_cloud/sphere test because it is not checked in 'vpointcloud' command and this is the default value

kgv

2022-01-17 23:15

developer   ~0106432

+
+
+

Still many redundant empty lines.

+        if (aTriangulation->HasUVNodes())
         {
+          if (aTriangulation.IsNull())

This wouldn't work like this.

+    anArrayPoints = new Graphic3d_ArrayOfPoints (aNbPoints, aFlags);
+    aPoitCloudTool.Init(anArrayPoints);
+    Standard_Boolean isDone = isDensityPoints ?
+                              aPoitCloudTool.GeneratePointsByDensity(aDensity) :
+                              aPoitCloudTool.GeneratePointsByTriangulation();
...
+    if (hasUV)
     {
+      Handle(Graphic3d_ArrayOfPoints) anArrayTexelPoints = new Graphic3d_ArrayOfPoints(aNbPoints, aFlags);

It makes no sense generating points by one algorithm and then override them by another.
Please put UV initialization direction to the new Tool interface.

-    else if (aFlag == "-normals"
-          || aFlag == "-normal")

Why?

-      Message::SendFail() << "Error: no shape with name '" << aShapeName << "' found";
+      Message::SendFail() << "Point cloud was not generated";

Please don't remove "Error:" prefix.

 "writeply filename shape

Please follow common syntax style (arguments order) as other write* commands.

git

2022-01-19 16:41

administrator   ~0106471

Branch CR29325_5 has been created by asuraven.

SHA-1: 7a6d6b434d00978b95e4b00aab352ed4f5b064fc


Detailed log of new commits:

Author: gka
Date: Wed Nov 8 17:13:53 2017 +0300

    0029325: Modeling Algorithms - add tool BRepLib_PointCloudShape for generation point cloud for specified shape
    
    Tool for generation points by shape two ways:
    1. Generation points with specified density
    2. Generation points using triangulation Nodes
    
    Generated points can be:
    1. shown in the Viewer 3D with help Test Harness command "vpointcloud"
    2. written in the ply file with help Test Harness command "writeply"

git

2022-01-20 15:37

administrator   ~0106481

Branch CR29325_5 has been updated forcibly by asuraven.

SHA-1: 731b16d02beb7e8aad0d996bdaf60ce1f1a27979

git

2022-01-20 19:27

administrator   ~0106487

Branch CR29325_5 has been updated forcibly by asuraven.

SHA-1: ce5d026fd6637e07a47ad7e6b6e3d79bb2452dbf

asuraven

2022-01-21 11:23

developer   ~0106494

fixed in branch CR29325_5
tests results: http://jenkins-test-occt/view/CR29325_5-master-ASURAVEN/view/COMPARE/

kgv

2022-01-24 10:07

developer   ~0106549

+    gp_Pnt2d aVuNode = gp_Pnt2d(aU, aV);

That's really awkward naming in opposite order.

+    addPoint(aP1, aTriangulation->Normal(i), aTriangulation->UVNode(i), aFace);

HasUV check is missing.

+    gp_Pnt aP1 = aTriangulation->Node(i);
+    if (!aLoc.IsIdentity())
+    {
+      aP1.Transform(aTrsf);
+    }
+    addPoint(aP1, aTriangulation->Normal(i), aTriangulation->UVNode(i), aFace);

Why only 3D point is transformed? What about normal?

+  Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace);

Wouldn't it be better transforming 3D point and normal instead of a Surface?

+    if (aStr == "-nonormal"|| aStr == "-normal")
+    {
+      hasNormals = Draw::ParseOnOffNoIterator(argc, argv, k);
+    }

Due to the way how ParseOnOffNoIterator() is implemented, it cannot be used in this context (there is "no" in "-normal").
Please use Draw::ParseOnOffIterator() and handle two cases.

git

2022-01-24 18:26

administrator   ~0106560

Branch CR29325_5 has been updated forcibly by asuraven.

SHA-1: 9ba3e07f69f85ce031f471fc39b2113dadc141e2

asuraven

2022-01-25 13:17

developer   ~0106572

Kirill's remarks fixed in branch CR29325_5
New tests results: http://jenkins-test-occt/view/CR29325_5-master-ASURAVEN/

kgv

2022-01-25 16:46

developer   ~0106579

     if (aFlag == "-randcolors"
      || aFlag == "-randcolor")
     {
-      if (isSetArgNorm && hasNormals)
-      {
-        Message::SendFail ("Syntax error: normals can not be enabled with colors at the same time");
-        return 1;
-      }
       toRandColors = Standard_True;
-      hasNormals   = Standard_False;
     }

Please revert this change, or update test case.

git

2022-01-25 18:00

administrator   ~0106583

Branch CR29325_5 has been updated forcibly by asuraven.

SHA-1: 5cfc6e9d6447b56a9208ecbbd68a27d44e0d31f2

asuraven

2022-01-25 18:02

developer   ~0106584

add ' -nonormals' option to random colors mode into 'v3d point_cloud sphere' test

git

2022-01-26 13:35

administrator   ~0106603

Branch CR29325_6 has been created by kgv.

SHA-1: 2ac1ab522c8ff3f74fb13f574d5d03585b594eff


Detailed log of new commits:

Author: gka
Date: Wed Nov 8 17:13:53 2017 +0300

    0029325: Modeling Algorithms - add tool BRepLib_PointCloudShape for generation point cloud for specified shape
    
    Tool for generation points by shape two ways:
    1. Generation points with specified density
    2. Generation points using triangulation Nodes
    
    Generated points can be:
    1. shown in the Viewer 3D with help Test Harness command "vpointcloud"
    2. written in the ply file with help Test Harness command "writeply"

git

2022-01-26 23:00

administrator   ~0106612

Branch CR29325_7 has been created by kgv.

SHA-1: d0d050c090923f42c76173ca91c9e319e580f26c


Detailed log of new commits:

Author: gka
Date: Wed Nov 8 17:13:53 2017 +0300

    0029325: Modeling Algorithms - add tool BRepLib_PointCloudShape for generation point cloud for specified shape
    
    Added PLY writing tools RWPly_CafWriter and RWPly_PlyWriterContext.
    
    Added tool BRepLib_PointCloudShape generating point cloud from shape in two ways:
    - random points on surface with specified density;
    - points from triangulation nodes.
    
    Command vpointcloud has been extended to use new generation tool.
    Command writeply has been added to write triangulation or point set into PLY format.

git

2022-01-26 23:22

administrator   ~0106613

Branch CR29325_7 has been updated forcibly by kgv.

SHA-1: 698cd0fad069f513316eb55a393855ee076bac6d

git

2022-01-26 23:36

administrator   ~0106614

Branch CR29325_7 has been updated forcibly by kgv.

SHA-1: 852bedcac0ca5ea9b578af3a9abbdbd02e58b1c3

git

2022-01-27 00:09

administrator   ~0106615

Branch CR29325_7 has been updated forcibly by kgv.

SHA-1: f6139b6f83998b9d0c7e0aa311638d4bdc5cab6a

git

2022-01-27 00:27

administrator   ~0106616

Branch CR29325_7 has been updated forcibly by kgv.

SHA-1: 62b0eeb04e6778ab1b441f5e12a91b182af21a8b

git

2022-01-27 09:08

administrator   ~0106620

Branch CR29325_7 has been updated forcibly by kgv.

SHA-1: 112f1ad31357a7be23f08fc118187b6a6fd27945

kgv

2022-01-27 09:12

developer   ~0106621

Please raise the patch
- OCCT: branch CR29325_7.

http://jenkins-test-occt.nnov.opencascade.com/view/CR29325_7-master-KGV/

kgv

2022-01-27 14:19

developer   ~0106634

as1-pnts.ply.7z (868,859 bytes)
as1-tris.ply.7z (33,285 bytes)

kgv

2022-01-27 14:21

developer   ~0106635

as1-pnts.png (157,356 bytes)

smoskvin

2022-01-28 10:38

administrator   ~0106648

Warnings on vc12 vc14 vc141 vc142 Windows-x64 samples csharp java

++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Project : CR0-WEEK-4_CR0-WEEK-4-Products-Windows-64-VC12-sample-csharp
++++++++++++++++++++++++++++++++++++++++++++++++++++++++

New warnings appears: 1
 
Type : MSBuild
Category : 401
File Name : e:/install/CR0-WEEK-4_CR0-WEEK-4/Windows-64-VC12-opt/OCCT/inc/StdPrs_ToolTriangulatedShape.hxx
Line : 0
Message : Nothing known about base class BRepLib_ToolTriangulatedShape. Ignored.

git

2022-02-05 14:44

administrator   ~0106750

Branch CR29325_7 has been updated forcibly by kgv.

SHA-1: b76856a84afe9e5423bde288a894c62a5d5b5a5c

kgv

2022-02-05 16:05

developer   ~0106759

Please raise the patch
- OCCT: branch CR29325_7;
- OCC Products: branch CR29325_7.

smoskvin

2022-02-12 13:24

administrator   ~0106857

Combination -
OCCT branch : IR-2022-02-11
master SHA - 3d21fe1aeeee8d1aefdf6ff03aab1dca4ae4b310
49e51745631c52b6c452c65adae4d6dfa21a1b1e
Products branch : IR-2022-02-11 SHA - 07f1dd65fb2caba3011759dfd7ab39455b488602
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 18542.53000000038 / 18611.910000000662 [-0.37%]
Products
Total CPU difference: 11696.46000000009 / 11726.350000000115 [-0.25%]
Windows-64-VC14:
OCCT
Total CPU difference: 20386.203125 / 20337.953125 [+0.24%]
Products
Total CPU difference: 13150.375 / 13174.703125 [-0.18%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2022-02-12 20:17

administrator   ~0106865

Branch CR29325 has been deleted by mnt.

SHA-1: 7e3e50312f6f2890d32a5ca13d2d73cf59c2122d

git

2022-02-12 20:17

administrator   ~0106866

Branch CR29325_1 has been deleted by mnt.

SHA-1: 8f54659dcb4026d5eca584da9ea8d89fe0b967c0

git

2022-02-12 20:17

administrator   ~0106867

Branch CR29325_2 has been deleted by mnt.

SHA-1: b263e1027db52571d69db668d082e5433fd92910

git

2022-02-12 20:17

administrator   ~0106868

Branch CR29325_3 has been deleted by mnt.

SHA-1: e9b75127d62970929672d88ca54ca28973625366

git

2022-02-12 20:17

administrator   ~0106869

Branch CR29325_4 has been deleted by mnt.

SHA-1: 4a504d94f99ff56130a9ccaab8bf65dacbbcb550

git

2022-02-12 20:17

administrator   ~0106870

Branch CR29325_5 has been deleted by mnt.

SHA-1: 5cfc6e9d6447b56a9208ecbbd68a27d44e0d31f2

git

2022-02-12 20:17

administrator   ~0106871

Branch CR29325_6 has been deleted by mnt.

SHA-1: 2ac1ab522c8ff3f74fb13f574d5d03585b594eff

git

2022-02-12 20:17

administrator   ~0106872

Branch CR29325_7 has been deleted by mnt.

SHA-1: b76856a84afe9e5423bde288a894c62a5d5b5a5c

Related Changesets

occt: master e2d60d0f

2017-11-08 17:13:53

gka


Committer: smoskvin Details Diff
0029325: Modeling Algorithms - add tool BRepLib_PointCloudShape for generation point cloud for specified shape

Added PLY writing tools RWPly_CafWriter and RWPly_PlyWriterContext.

Added tool BRepLib_PointCloudShape generating point cloud from shape in two ways:
- random points on surface with specified density;
- points from triangulation nodes.

StdPrs_ToolTriangulatedShape::ComputeNormals() has been moved to
BRepLib_ToolTriangulatedShape for reusing outside of AIS.

Command vpointcloud has been extended to use new generation tool.
Command writeply has been added to write triangulation or point set into PLY format.
Affected Issues
0029325
mod - adm/UDLIST Diff File
add - src/BRepLib/BRepLib_PointCloudShape.cxx Diff File
add - src/BRepLib/BRepLib_PointCloudShape.hxx Diff File
add - src/BRepLib/BRepLib_ToolTriangulatedShape.cxx Diff File
add - src/BRepLib/BRepLib_ToolTriangulatedShape.hxx Diff File
mod - src/BRepLib/FILES Diff File
add - src/RWPly/FILES Diff File
add - src/RWPly/RWPly_CafWriter.cxx Diff File
add - src/RWPly/RWPly_CafWriter.hxx Diff File
add - src/RWPly/RWPly_PlyWriterContext.cxx Diff File
add - src/RWPly/RWPly_PlyWriterContext.hxx Diff File
mod - src/StdPrs/StdPrs_ToolTriangulatedShape.cxx Diff File
mod - src/StdPrs/StdPrs_ToolTriangulatedShape.hxx Diff File
mod - src/TKRWMesh/PACKAGES Diff File
mod - src/ViewerTest/ViewerTest_ObjectCommands.cxx Diff File
mod - src/XSDRAWSTLVRML/XSDRAWSTLVRML.cxx Diff File
mod - tests/de_mesh/grids.list Diff File
add - tests/de_mesh/ply_write/equerre Diff File
add - tests/de_mesh/ply_write/sangle Diff File
mod - tests/v3d/point_cloud/sphere Diff File

occt-products: master 681beceb

2022-02-05 14:48:25

kgv


Committer: smoskvin Details Diff
0029325: Modeling Algorithms - add tool BRepLib_PointCloudShape for generation point cloud for specified shape

Added wrapping of BRepLib_ToolTriangulatedShape to SWIG (as a base of StdPrs_ToolTriangulatedShape).
Affected Issues
0029325
mod - samples/swig/TKTopAlgo.i Diff File

Issue History

Date Modified Username Field Change
2017-11-15 11:27 gka New Issue
2017-11-15 11:27 gka Assigned To => gka
2017-11-15 11:28 git Note Added: 0072255
2017-11-20 12:13 gka Assigned To gka => abv
2017-11-20 12:13 gka Status new => resolved
2017-11-20 12:13 gka Steps to Reproduce Updated
2019-09-04 18:33 kgv Summary Tool for generation point cloud for specified shape => Modeling Algorithms - Tool for generation point cloud for specified shape
2019-09-14 08:31 abv Target Version 7.4.0 => 7.5.0
2020-09-15 16:35 msv Target Version 7.5.0 => 7.6.0
2021-08-29 17:27 msv Target Version 7.6.0 => 7.7.0
2021-11-15 14:38 szy Assigned To abv => asuraven
2021-11-15 18:33 asuraven Note Added: 0105202
2021-11-16 15:56 git Note Added: 0105216
2021-11-16 17:53 asuraven Note Added: 0105223
2021-11-18 18:28 asuraven Note Added: 0105245
2021-11-22 13:59 git Note Added: 0105349
2021-11-22 15:59 git Note Added: 0105355
2021-11-23 12:46 asuraven Assigned To asuraven => msv
2021-11-23 12:50 asuraven Note Added: 0105369
2021-11-23 21:43 msv Note Added: 0105381
2021-11-23 21:43 msv Assigned To msv => asuraven
2021-11-23 21:43 msv Status resolved => assigned
2021-11-23 22:13 kgv Severity minor => feature
2021-11-23 22:13 kgv Summary Modeling Algorithms - Tool for generation point cloud for specified shape => Modeling Algorithms - add tool BRepLib_PointCloudShape for generation point cloud for specified shape
2021-11-24 20:16 asuraven Note Added: 0105403
2021-11-26 16:00 asuraven Note Added: 0105451
2021-11-30 18:32 git Note Added: 0105546
2021-11-30 18:34 asuraven Note Added: 0105547
2021-12-03 18:04 git Note Added: 0105635
2021-12-06 14:18 asuraven Note Edited: 0105547
2021-12-06 19:06 git Note Added: 0105706
2021-12-07 13:10 git Note Added: 0105718
2021-12-07 13:23 asuraven Note Added: 0105719
2021-12-07 13:23 asuraven Assigned To asuraven => msv
2021-12-07 13:23 asuraven Status assigned => resolved
2021-12-07 14:10 kgv Note Added: 0105721
2021-12-07 14:10 kgv Assigned To msv => asuraven
2021-12-07 14:10 kgv Status resolved => assigned
2021-12-07 14:14 kgv Note Added: 0105722
2021-12-07 14:15 kgv Note Edited: 0105722
2021-12-07 14:15 kgv Note Edited: 0105722
2021-12-07 14:56 msv Note Added: 0105724
2021-12-07 15:09 msv Note Added: 0105725
2021-12-07 21:07 git Note Added: 0105730
2021-12-21 16:40 asuraven Time allocated 20.12.2021: 4 h. => set
2021-12-22 19:05 asuraven Time allocated 22.12.2021: 4 h. => set
2021-12-23 19:02 git Note Added: 0106168
2021-12-23 19:07 asuraven Time allocated 23.12.2021: 8 h. => set
2021-12-24 09:11 git Note Added: 0106174
2021-12-24 11:09 asuraven Assigned To asuraven => msv
2021-12-24 11:09 asuraven Status assigned => resolved
2021-12-24 11:09 asuraven Note Added: 0106176
2021-12-24 11:11 asuraven Note Added: 0106177
2021-12-24 11:12 asuraven Time allocated 24.12.2021: 1 h. => set
2021-12-30 14:47 asuraven Time allocated 30.12.2021: 8 h. => set
2021-12-30 14:47 asuraven Time allocated 29.12.2021: 8 h. => set
2021-12-30 14:52 asuraven Time allocated Deleted 2021-12-29: 8,00 h. => deleted
2021-12-30 14:52 asuraven Time allocated Deleted 2021-12-30: 8,00 h. => deleted
2022-01-10 13:24 git Note Added: 0106276
2022-01-10 17:57 asuraven Note Added: 0106289
2022-01-10 17:58 asuraven Time allocated 10.1.2022: 4 h. => set
2022-01-10 20:45 kgv Note Added: 0106291
2022-01-11 13:10 msv Note Added: 0106295
2022-01-11 13:10 msv Assigned To msv => asuraven
2022-01-11 13:10 msv Status resolved => assigned
2022-01-11 17:55 git Note Added: 0106304
2022-01-11 17:56 asuraven Time allocated 11.1.2022: 5 h. => set
2022-01-13 17:47 git Note Added: 0106344
2022-01-13 17:48 git Note Added: 0106345
2022-01-14 16:52 git Note Added: 0106368
2022-01-14 17:12 asuraven Time allocated 14.1.2022: 4 h. => set
2022-01-17 12:33 git Note Added: 0106427
2022-01-17 16:59 asuraven Assigned To asuraven => msv
2022-01-17 16:59 asuraven Status assigned => resolved
2022-01-17 16:59 asuraven Note Added: 0106429
2022-01-17 23:15 kgv Note Added: 0106432
2022-01-17 23:16 kgv Assigned To msv => asuraven
2022-01-17 23:16 kgv Status resolved => assigned
2022-01-17 23:16 kgv Steps to Reproduce Updated
2022-01-17 23:17 kgv Relationship added related to 0025476
2022-01-19 10:33 kgv Time allocated 18.1.2022: 1 h. => set
2022-01-19 16:41 git Note Added: 0106471
2022-01-20 15:37 git Note Added: 0106481
2022-01-20 19:27 git Note Added: 0106487
2022-01-21 11:23 asuraven Assigned To asuraven => msv
2022-01-21 11:23 asuraven Status assigned => resolved
2022-01-21 11:23 asuraven Steps to Reproduce Updated
2022-01-21 11:23 asuraven Note Added: 0106494
2022-01-24 10:07 kgv Note Added: 0106549
2022-01-24 12:13 asuraven Time allocated 17.1.2022: 8 h. => set
2022-01-24 12:13 asuraven Time allocated 19.1.2022: 8 h. => set
2022-01-24 18:26 git Note Added: 0106560
2022-01-25 13:17 asuraven Note Added: 0106572
2022-01-25 13:23 msv Assigned To msv => kgv
2022-01-25 16:46 kgv Note Added: 0106579
2022-01-25 18:00 git Note Added: 0106583
2022-01-25 18:02 asuraven Note Added: 0106584
2022-01-26 13:35 git Note Added: 0106603
2022-01-26 23:00 git Note Added: 0106612
2022-01-26 23:22 git Note Added: 0106613
2022-01-26 23:36 git Note Added: 0106614
2022-01-27 00:09 git Note Added: 0106615
2022-01-27 00:27 git Note Added: 0106616
2022-01-27 09:08 git Note Added: 0106620
2022-01-27 09:12 kgv Assigned To kgv => bugmaster
2022-01-27 09:12 kgv Status resolved => reviewed
2022-01-27 09:12 kgv Steps to Reproduce Updated
2022-01-27 09:12 kgv Test case number => de_mesh/ply_write/equerre
2022-01-27 09:12 kgv Note Added: 0106621
2022-01-27 14:19 kgv Note Added: 0106634
2022-01-27 14:19 kgv File Added: as1-pnts.ply.7z
2022-01-27 14:19 kgv File Added: as1-tris.ply.7z
2022-01-27 14:21 kgv Note Added: 0106635
2022-01-27 14:21 kgv File Added: as1-pnts.png
2022-01-28 10:38 smoskvin Assigned To bugmaster => kgv
2022-01-28 10:38 smoskvin Status reviewed => assigned
2022-01-28 10:38 smoskvin Note Added: 0106648
2022-01-28 17:51 asuraven Time allocated 24.1.2022: 8 h. => set
2022-01-28 17:54 asuraven Time allocated 26.1.2022: 5.6 h. => set
2022-02-05 14:44 git Note Added: 0106750
2022-02-05 16:05 kgv Assigned To kgv => bugmaster
2022-02-05 16:05 kgv Status assigned => resolved
2022-02-05 16:05 kgv Note Added: 0106759
2022-02-05 16:05 kgv Status resolved => reviewed
2022-02-12 13:24 smoskvin Status reviewed => tested
2022-02-12 13:24 smoskvin Note Added: 0106857
2022-02-12 20:13 smoskvin Changeset attached => occt-products master 681beceb
2022-02-12 20:13 kgv Assigned To bugmaster => kgv
2022-02-12 20:13 kgv Status tested => verified
2022-02-12 20:13 kgv Resolution open => fixed
2022-02-12 20:14 smoskvin Changeset attached => occt master e2d60d0f
2022-02-12 20:14 gka Assigned To kgv => gka
2022-02-12 20:17 git Note Added: 0106865
2022-02-12 20:17 git Note Added: 0106866
2022-02-12 20:17 git Note Added: 0106867
2022-02-12 20:17 git Note Added: 0106868
2022-02-12 20:17 git Note Added: 0106869
2022-02-12 20:17 git Note Added: 0106870
2022-02-12 20:17 git Note Added: 0106871
2022-02-12 20:17 git Note Added: 0106872
2022-07-11 16:11 dpasukhi Relationship added related to 0033055