+///////////////////////////////////////////////////////////////////////////////
+///Create a new prism and add it to the mesh.
+///Nodes 1,2,3,4 and 5,6,7,8 are quadrangle and 5,1 and 7,3 are an edges.
+///@param ID The ID of the new volume
+///@return The created prism or NULL if an edge with this ID already exists
+///or if input nodes are not found.
+///////////////////////////////////////////////////////////////////////////////
+
+SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(
+ const SMDS_MeshNode * n1,
+ const SMDS_MeshNode * n2,
+ const SMDS_MeshNode * n3,
+ const SMDS_MeshNode * n4,
+ const SMDS_MeshNode * n5,
+ const SMDS_MeshNode * n6,
+ const SMDS_MeshNode * n7,
+ const SMDS_MeshNode * n8, int ID)
+{
+ SMDS_MeshNode *node1, *node2, *node3, *node4, *node5, *node6, *node7, *node8;
+ node1=const_cast<SMDS_MeshNode*>(n1),
+ node2=const_cast<SMDS_MeshNode*>(n2),
+ node3=const_cast<SMDS_MeshNode*>(n3);
+ node4=const_cast<SMDS_MeshNode*>(n4);
+ node5=const_cast<SMDS_MeshNode*>(n5);
+ node6=const_cast<SMDS_MeshNode*>(n6);
+ node7=const_cast<SMDS_MeshNode*>(n7);
+ node8=const_cast<SMDS_MeshNode*>(n8);