1 /**
2 * MOAB, a Mesh-Oriented datABase, is a software component for creating,
3 * storing and accessing finite element mesh data.
4 *
5 * Copyright 2004 Sandia Corporation. Under the terms of Contract
6 * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government
7 * retains certain rights in this software.
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 */
15
16 #include "SweptVertexData.hpp"
17 #include <cassert>
18
19 namespace moab
20 {
21
22 //! constructor
23 SweptVertexData::SweptVertexData( const EntityHandle start_vertex,
24 const int imin,
25 const int jmin,
26 const int kmin,
27 const int imax,
28 const int jmax,
29 const int kmax )
30 : SequenceData( 3,
31 start_vertex,
32 start_vertex + ( imax - imin + 1 ) * ( jmax - jmin + 1 ) * ( kmax - kmin + 1 ) - 1 )
33 {
34 // need to have meaningful parameters
35 assert( imax >= imin && jmax >= jmin && kmax >= kmin );
36
37 vertexParams[0] = HomCoord( imin, jmin, kmin );
38 vertexParams[1] = HomCoord( imax, jmax, kmax );
39 vertexParams[2] = HomCoord( 1, 1, 1 );
40
41 dIJK[0] = imax - imin + 1;
42 dIJK[1] = jmax - jmin + 1;
43 dIJK[2] = kmax - kmin + 1;
44 dIJKm1[0] = dIJK[0] - 1;
45 dIJKm1[1] = dIJK[1] - 1;
46 dIJKm1[2] = dIJK[2] - 1;
47
48 create_sequence_data( 0, sizeof( double ) );
49 create_sequence_data( 1, sizeof( double ) );
50 create_sequence_data( 2, sizeof( double ) );
51 }
52
53 SequenceData* SweptVertexData::subset( EntityHandle /*start*/,
54 EntityHandle /*end*/,
55 const int* /*sequence_data_sizes*/,
56 const int* /*tag_data_sizes*/ ) const
57 {
58 return 0;
59 }
60
61 } // namespace moab