+//=======================================================================
+//function : SetAxesDirs
+//purpose : Set custom direction of axes
+//=======================================================================
+
+void StdMeshers_CartesianParameters3D_i::SetAxesDirs(const SMESH::DirStruct& xDir,
+ const SMESH::DirStruct& yDir,
+ const SMESH::DirStruct& zDir)
+
+{
+ double coords[9];
+ coords[0] = xDir.PS.x;
+ coords[1] = xDir.PS.y;
+ coords[2] = xDir.PS.z;
+ coords[3] = yDir.PS.x;
+ coords[4] = yDir.PS.y;
+ coords[5] = yDir.PS.z;
+ coords[6] = zDir.PS.x;
+ coords[7] = zDir.PS.y;
+ coords[8] = zDir.PS.z;
+
+ const double* oldCoords = GetImpl()->GetAxisDirs();
+ bool isSame = true;
+ for ( int i = 0; i < 9 && isSame; ++i )
+ isSame = ( oldCoords[i] == coords[i] );
+ if ( isSame )
+ return;
+
+ try {
+ this->GetImpl()->SetAxisDirs(coords);
+
+ SMESH::TPythonDump() << _this() << ".SetAxesDirs( "
+ << xDir << ", "
+ << yDir << ", "
+ << zDir << " )";
+ }
+ catch ( SALOME_Exception& S_ex ) {
+ THROW_SALOME_CORBA_EXCEPTION( S_ex.what(), SALOME::BAD_PARAM );
+ }
+}
+
+//=======================================================================
+//function : GetAxesDirs
+//purpose : Returns direction of axes
+//=======================================================================
+
+void StdMeshers_CartesianParameters3D_i::GetAxesDirs(SMESH::DirStruct& xDir,
+ SMESH::DirStruct& yDir,
+ SMESH::DirStruct& zDir)
+{
+ const double* coords = GetImpl()->GetAxisDirs();
+ xDir.PS.x = coords[0];
+ xDir.PS.y = coords[1];
+ xDir.PS.z = coords[2];
+ yDir.PS.x = coords[3];
+ yDir.PS.y = coords[4];
+ yDir.PS.z = coords[5];
+ zDir.PS.x = coords[6];
+ zDir.PS.y = coords[7];
+ zDir.PS.z = coords[8];
+}
+
+//=======================================================================
+//function : SetFixedPoint
+//purpose : * Set/unset a fixed point, at which a node will be created provided that grid
+// * is defined by spacing in all directions
+//=======================================================================
+
+void StdMeshers_CartesianParameters3D_i::SetFixedPoint(const SMESH::PointStruct& ps,
+ CORBA::Boolean toUnset)
+{
+ SMESH::PointStruct oldPS;
+ GetFixedPoint( oldPS );
+ if ( oldPS.x == ps.x && oldPS.y == ps.y && oldPS.z == ps.z )
+ return;
+
+ double p[3] = { ps.x, ps.y, ps.z };
+ GetImpl()->SetFixedPoint( p, toUnset );
+
+ SMESH::TPythonDump() << _this() << ".SetFixedPoint( " << ps << ", " << toUnset << " )";
+}
+
+//=======================================================================
+//function : GetFixedPoint
+//purpose : Returns a fixed point
+//=======================================================================
+
+CORBA::Boolean StdMeshers_CartesianParameters3D_i::GetFixedPoint(SMESH::PointStruct& ps)
+{
+ double p[3];
+ if ( GetImpl()->GetFixedPoint( p ) )
+ {
+ ps.x = p[0];
+ ps.y = p[1];
+ ps.z = p[2];
+ return true;
+ }
+ else
+ {
+ ps.x = 0.;
+ ps.y = 0.;
+ ps.z = 0.;
+ }
+ return false;
+}
+
+//=======================================================================
+//function : SetToAddEdges
+//purpose : Enables implementation of geometrical edges into the mesh.
+//=======================================================================
+
+void StdMeshers_CartesianParameters3D_i::SetToAddEdges(CORBA::Boolean toAdd)
+{
+ GetImpl()->SetToAddEdges( toAdd );
+ SMESH::TPythonDump() << _this() << ".SetToAddEdges( " << toAdd << " )";
+}
+
+//=======================================================================
+//function : GetToAddEdges
+//purpose : Returns true if implementation of geometrical edges into the
+// mesh is enabled
+//=======================================================================
+
+CORBA::Boolean StdMeshers_CartesianParameters3D_i::GetToAddEdges()
+{
+ return GetImpl()->GetToAddEdges();
+}
+
+//=======================================================================
+//function : SetToConsiderInternalFaces
+//purpose : Enables treatment of geom faces, either shared by solids or internal.
+//=======================================================================
+
+void StdMeshers_CartesianParameters3D_i::SetToConsiderInternalFaces(CORBA::Boolean toTreat)
+{
+ if ( GetToConsiderInternalFaces() == toTreat )
+ return;
+ GetImpl()->SetToConsiderInternalFaces( toTreat );
+ SMESH::TPythonDump() << _this() << ".SetToConsiderInternalFaces( " << toTreat << " )";
+}
+
+//=======================================================================
+//function : GetToConsiderInternalFaces
+//purpose : Return true if treatment of internal geom faces is enabled
+//=======================================================================
+
+CORBA::Boolean StdMeshers_CartesianParameters3D_i::GetToConsiderInternalFaces()
+{
+ return GetImpl()->GetToConsiderInternalFaces();
+}
+
+//=======================================================================
+//function : SetToUseThresholdForInternalFaces
+//purpose : Enables applying size threshold to grid cells cut by internal geom faces.
+//=======================================================================
+
+void StdMeshers_CartesianParameters3D_i::SetToUseThresholdForInternalFaces(CORBA::Boolean toUse)
+{
+ if ( GetToUseThresholdForInternalFaces() == toUse )
+ return;
+ GetImpl()->SetToUseThresholdForInternalFaces( toUse );
+ SMESH::TPythonDump() << _this() << ".SetToUseThresholdForInternalFaces( " << toUse << " )";
+}
+
+//=======================================================================
+//function : GetToUseThresholdForInternalFaces
+//purpose : Return true if applying size threshold to grid cells cut by
+// internal geom faces is enabled
+//=======================================================================
+
+CORBA::Boolean StdMeshers_CartesianParameters3D_i::GetToUseThresholdForInternalFaces()
+{
+ return GetImpl()->GetToUseThresholdForInternalFaces();
+}
+
+//=======================================================================
+//function : SetToCreateFaces
+//purpose : Enables creation of mesh faces.
+//=======================================================================
+
+void StdMeshers_CartesianParameters3D_i::SetToCreateFaces(CORBA::Boolean toCreate)
+{
+ if ( GetToCreateFaces() == toCreate )
+ return;
+ GetImpl()->SetToCreateFaces( toCreate );
+ SMESH::TPythonDump() << _this() << ".SetToCreateFaces( " << toCreate << " )";
+}
+
+//=======================================================================
+//function : GetToCreateFaces
+//purpose : Check if creation of mesh faces enabled
+//=======================================================================
+
+CORBA::Boolean StdMeshers_CartesianParameters3D_i::GetToCreateFaces()
+{
+ return GetImpl()->GetToCreateFaces();
+}
+