0027905: Visualization - randomly directed arrows on test v3d mesh B7
authorski <ski@opencascade.com>
Thu, 6 Oct 2016 09:30:39 +0000 (12:30 +0300)
committerapn <apn@opencascade.com>
Thu, 6 Oct 2016 09:31:34 +0000 (12:31 +0300)
Behaviour of command meshvectors is stable now.
It shows default vector (0,0,1) for volume entity.
Test cases for issue CR27905

src/XSDRAWSTLVRML/XSDRAWSTLVRML.cxx
tests/bugs/demo/bug27905 [new file with mode: 0755]

index 43e5d31..c7e9818 100644 (file)
@@ -965,9 +965,11 @@ static Standard_Integer meshvectors( Draw_Interpretor& di,
     for ( ; anIter.More(); anIter.Next() )
     {
       Standard_Boolean IsValidData = Standard_False; 
-      if (anIsElement)
-        IsValidData = aMesh->GetDataSource()->GetNormal(anIter.Key(), 3, aCoords.ChangeValue(1), aCoords.ChangeValue(2), aCoords.ChangeValue(3));
-      else
+      if (anIsElement) {
+        aMesh->GetDataSource()->GetGeomType(anIter.Key(), anIsElement, aEntType);
+        if (aEntType == MeshVS_ET_Face)
+          IsValidData = aMesh->GetDataSource()->GetNormal(anIter.Key(), 3, aCoords.ChangeValue(1), aCoords.ChangeValue(2), aCoords.ChangeValue(3));
+      } else
         IsValidData = aMesh->GetDataSource()->GetGeom(anIter.Key(), Standard_False, aCoords, aNbNodes, aEntType);
 
       gp_Vec aNorm;
diff --git a/tests/bugs/demo/bug27905 b/tests/bugs/demo/bug27905
new file mode 100755 (executable)
index 0000000..6565838
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "CR27905"
+puts "============"
+puts ""
+##########################################################################################################
+# Visualization - randomly directed arrows on test v3d mesh B7
+##########################################################################################################
+
+pload XSDRAW
+
+vinit
+vclear
+
+mesh3delem m
+vsetdispmode m 5
+
+meshvectors m -mode elem -maxlen 10 -color green -arrowpart 0.5 -issipmle 0
+vdump ${imagedir}/${test_image}_1.png
+
+meshvectors m -mode elem -maxlen 10 -color green -arrowpart 0.5 -issipmle 0
+vdump ${imagedir}/${test_image}_2.png
+
+meshvectors m -mode elem -maxlen 10 -color green -arrowpart 0.5 -issipmle 0
+vdump ${imagedir}/${test_image}_3.png