Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Kirill Terekhov
INMOST
Commits
e529f35d
Commit
e529f35d
authored
Jun 10, 2015
by
Kirill Terekhov
Browse files
Removed ComposeHandle function overloading to avoid confusion
parent
bee269a9
Changes
3
Hide whitespace changes
Inline
Side-by-side
inmost_mesh.h
View file @
e529f35d
...
...
@@ -137,7 +137,7 @@ namespace INMOST
__INLINE
INMOST_DATA_INTEGER_TYPE
GetHandleElementNum
(
HandleType
h
)
{
return
h
>>
handle_etype_shift
;}
__INLINE
ElementType
GetHandleElementType
(
HandleType
h
)
{
return
1
<<
GetHandleElementNum
(
h
);}
__INLINE
HandleType
ComposeHandle
(
ElementType
etype
,
INMOST_DATA_INTEGER_TYPE
ID
)
{
return
ID
==
-
1
?
InvalidHandle
()
:
((
ElementNum
(
etype
)
<<
handle_etype_shift
)
+
(
1
+
ID
));}
__INLINE
HandleType
ComposeHandle
(
INMOST_DATA_INTEGER_TYPE
etypenum
,
INMOST_DATA_INTEGER_TYPE
ID
)
{
return
ID
==
-
1
?
InvalidHandle
()
:
((
etypenum
<<
handle_etype_shift
)
+
(
1
+
ID
));}
__INLINE
HandleType
ComposeHandle
Num
(
INMOST_DATA_INTEGER_TYPE
etypenum
,
INMOST_DATA_INTEGER_TYPE
ID
)
{
return
ID
==
-
1
?
InvalidHandle
()
:
((
etypenum
<<
handle_etype_shift
)
+
(
1
+
ID
));}
__INLINE
bool
isValidHandle
(
HandleType
h
)
{
return
h
!=
0
;}
...
...
@@ -2933,7 +2933,7 @@ namespace INMOST
void
EndSequentialCode
();
//iterator.cpp::::::::::::::::::::::::::::::::::::::::::::::::::
public:
Element
ElementByLocalID
(
integer
etypenum
,
integer
lid
)
{
assert
(
etypenum
<
5
&&
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
etypenum
].
size
()))
||
(
etypenum
==
5
&&
lid
==
0
));
return
Element
(
this
,
ComposeHandle
(
etypenum
,
lid
));}
Element
ElementByLocalID
(
integer
etypenum
,
integer
lid
)
{
assert
(
etypenum
<
5
&&
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
etypenum
].
size
()))
||
(
etypenum
==
5
&&
lid
==
0
));
return
Element
(
this
,
ComposeHandle
Num
(
etypenum
,
lid
));}
Element
ElementByLocalID
(
ElementType
etype
,
integer
lid
)
{
return
ElementByLocalID
(
ElementNum
(
etype
),
lid
);}
Element
ElementByHandle
(
HandleType
h
)
{
return
Element
(
this
,
h
);}
...
...
@@ -2941,16 +2941,16 @@ namespace INMOST
HandleType
PrevHandle
(
HandleType
h
)
const
;
//returns InvalidHandle() when go beyond first element
HandleType
NextHandle
(
HandleType
h
,
ElementType
mask
)
const
;
HandleType
PrevHandle
(
HandleType
h
,
ElementType
mask
)
const
;
//returns InvalidHandle() when go beyond first element
HandleType
FirstHandle
()
const
{
return
ComposeHandle
(
ElementNum
(
NODE
),
0
);}
HandleType
LastHandle
()
const
{
return
ComposeHandle
(
ElementNum
(
MESH
),
1
);}
HandleType
FirstHandle
(
ElementType
etype
)
const
{
return
ComposeHandle
(
ElementNum
(
etype
),
0
);}
HandleType
LastHandle
(
ElementType
etype
)
const
{
integer
num
=
ElementNum
(
etype
);
return
ComposeHandle
(
num
,
static_cast
<
integer
>
(
links
[
num
].
size
()));}
HandleType
FirstHandle
()
const
{
return
ComposeHandle
Num
(
ElementNum
(
NODE
),
0
);}
HandleType
LastHandle
()
const
{
return
ComposeHandle
Num
(
ElementNum
(
MESH
),
1
);}
HandleType
FirstHandle
(
ElementType
etype
)
const
{
return
ComposeHandle
Num
(
ElementNum
(
etype
),
0
);}
HandleType
LastHandle
(
ElementType
etype
)
const
{
integer
num
=
ElementNum
(
etype
);
return
ComposeHandle
Num
(
num
,
static_cast
<
integer
>
(
links
[
num
].
size
()));}
Node
NodeByLocalID
(
integer
lid
)
{
assert
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
0
].
size
()));
return
Node
(
this
,
ComposeHandle
(
0
,
lid
));
}
Edge
EdgeByLocalID
(
integer
lid
)
{
assert
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
1
].
size
()));
return
Edge
(
this
,
ComposeHandle
(
1
,
lid
));
}
Face
FaceByLocalID
(
integer
lid
)
{
assert
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
2
].
size
()));
return
Face
(
this
,
ComposeHandle
(
2
,
lid
));}
Cell
CellByLocalID
(
integer
lid
)
{
assert
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
3
].
size
()));
return
Cell
(
this
,
ComposeHandle
(
3
,
lid
));
}
ElementSet
EsetByLocalID
(
integer
lid
)
{
assert
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
4
].
size
()));
return
ElementSet
(
this
,
ComposeHandle
(
4
,
lid
));
}
Node
NodeByLocalID
(
integer
lid
)
{
assert
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
0
].
size
()));
return
Node
(
this
,
ComposeHandle
Num
(
0
,
lid
));
}
Edge
EdgeByLocalID
(
integer
lid
)
{
assert
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
1
].
size
()));
return
Edge
(
this
,
ComposeHandle
Num
(
1
,
lid
));
}
Face
FaceByLocalID
(
integer
lid
)
{
assert
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
2
].
size
()));
return
Face
(
this
,
ComposeHandle
Num
(
2
,
lid
));}
Cell
CellByLocalID
(
integer
lid
)
{
assert
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
3
].
size
()));
return
Cell
(
this
,
ComposeHandle
Num
(
3
,
lid
));
}
ElementSet
EsetByLocalID
(
integer
lid
)
{
assert
(
lid
>=
0
&&
lid
<
static_cast
<
integer
>
(
links
[
4
].
size
()));
return
ElementSet
(
this
,
ComposeHandle
Num
(
4
,
lid
));
}
integer
NodeNextLocalID
(
integer
lid
)
const
{
++
lid
;
while
(
lid
<
static_cast
<
integer
>
(
links
[
0
].
size
())
&&
links
[
0
][
lid
]
==
-
1
)
++
lid
;
return
lid
;}
integer
EdgeNextLocalID
(
integer
lid
)
const
{
++
lid
;
while
(
lid
<
static_cast
<
integer
>
(
links
[
1
].
size
())
&&
links
[
1
][
lid
]
==
-
1
)
++
lid
;
return
lid
;}
...
...
iterator.cpp
View file @
e529f35d
...
...
@@ -50,7 +50,7 @@ namespace INMOST
else
break
;
}
if
(
num
==
5
&&
id
>
0
)
id
=
1
;
return
ComposeHandle
(
num
,
id
);
return
ComposeHandle
Num
(
num
,
id
);
}
HandleType
Mesh
::
PrevHandle
(
HandleType
h
)
const
...
...
@@ -61,7 +61,7 @@ namespace INMOST
{
if
(
id
<
0
)
num
=
4
;
else
return
ComposeHandle
(
ElementNum
(
MESH
),
0
);
else
return
ComposeHandle
Num
(
ElementNum
(
MESH
),
0
);
}
while
(
num
>=
0
)
{
...
...
@@ -74,7 +74,7 @@ namespace INMOST
else
break
;
}
if
(
num
<
0
)
return
InvalidHandle
();
return
ComposeHandle
(
num
,
id
);
return
ComposeHandle
Num
(
num
,
id
);
}
HandleType
Mesh
::
NextHandle
(
HandleType
h
,
ElementType
etype
)
const
...
...
@@ -102,7 +102,7 @@ namespace INMOST
else
break
;
}
if
(
num
==
5
&&
id
>
0
)
id
=
1
;
return
ComposeHandle
(
num
,
id
);
return
ComposeHandle
Num
(
num
,
id
);
}
HandleType
Mesh
::
PrevHandle
(
HandleType
h
,
ElementType
etype
)
const
...
...
@@ -127,7 +127,7 @@ namespace INMOST
}
if
(
stop
)
return
InvalidHandle
();
}
else
return
ComposeHandle
(
ElementNum
(
MESH
),
0
);
else
return
ComposeHandle
Num
(
ElementNum
(
MESH
),
0
);
}
while
(
num
>=
0
)
{
...
...
@@ -150,7 +150,7 @@ namespace INMOST
else
break
;
}
if
(
num
<
0
)
return
InvalidHandle
();
return
ComposeHandle
(
num
,
id
);
return
ComposeHandle
Num
(
num
,
id
);
}
Storage
::
integer
Mesh
::
FirstLocalID
(
ElementType
etype
)
const
...
...
mesh.cpp
View file @
e529f35d
...
...
@@ -862,7 +862,7 @@ namespace INMOST
Node
Mesh
::
CreateNode
(
const
real
*
coords
)
{
integer
id
=
TieElement
(
0
);
HandleType
h
=
ComposeHandle
(
0
,
id
);
HandleType
h
=
ComposeHandle
Num
(
0
,
id
);
SetGeometricType
(
h
,
Element
::
Vertex
);
real
*
v
=
static_cast
<
Storage
::
real
*>
(
MGetDenseLink
(
h
,
CoordsTag
()));
for
(
integer
i
=
0
;
i
<
dim
;
i
++
)
v
[
i
]
=
coords
[
i
];
...
...
@@ -912,7 +912,7 @@ namespace INMOST
if
(
test
!=
InvalidHandle
())
return
std
::
make_pair
(
Edge
(
this
,
test
),
false
);
}
integer
id
=
TieElement
(
1
);
he
=
ComposeHandle
(
1
,
id
);
he
=
ComposeHandle
Num
(
1
,
id
);
for
(
ElementArray
<
Node
>::
size_type
i
=
0
;
i
<
nodes
.
size
();
i
++
)
{
Element
::
adj_type
&
hc
=
HighConn
(
nodes
.
at
(
i
));
...
...
@@ -1004,7 +1004,7 @@ namespace INMOST
if
(
test
!=
InvalidHandle
())
return
std
::
make_pair
(
Face
(
this
,
test
),
false
);
}
integer
id
=
TieElement
(
2
);
he
=
ComposeHandle
(
2
,
id
);
he
=
ComposeHandle
Num
(
2
,
id
);
for
(
ElementArray
<
Edge
>::
size_type
i
=
0
;
i
<
f_edges
.
size
();
i
++
)
{
Element
::
adj_type
&
hc
=
HighConn
(
f_edges
.
at
(
i
));
...
...
@@ -1374,7 +1374,7 @@ namespace INMOST
if
(
test
!=
InvalidHandle
())
return
std
::
make_pair
(
Cell
(
this
,
test
),
false
);
}
integer
id
=
TieElement
(
3
);
he
=
ComposeHandle
(
3
,
id
);
he
=
ComposeHandle
Num
(
3
,
id
);
for
(
ElementArray
<
Face
>::
size_type
i
=
0
;
i
<
c_faces
.
size
();
i
++
)
{
Element
::
adj_type
&
hc
=
HighConn
(
c_faces
.
at
(
i
));
...
...
@@ -1476,7 +1476,7 @@ namespace INMOST
if
(
e
->
GetName
()
==
name
)
return
std
::
make_pair
(
e
->
self
(),
false
);
}
HandleType
he
=
ComposeHandle
(
4
,
TieElement
(
4
));
HandleType
he
=
ComposeHandle
Num
(
4
,
TieElement
(
4
));
bulk_array
set_name
=
BulkArrayDV
(
he
,
SetNameTag
());
set_name
.
resize
(
static_cast
<
bulk_array
::
size_type
>
(
name
.
size
()));
memcpy
(
set_name
.
data
(),
name
.
c_str
(),
name
.
size
());
...
...
@@ -1498,7 +1498,7 @@ namespace INMOST
Storage
::
integer
j
=
0
;
for
(
Storage
::
integer
k
=
0
;
k
<
NodeLastLocalID
();
++
k
)
if
(
isValidElement
(
0
,
k
)
)
{
memcpy
(
temp
.
data
()
+
j
,
MGetDenseLink
(
ComposeHandle
(
0
,
k
),
CoordsTag
()),
sizeof
(
Storage
::
real
)
*
dims
);
memcpy
(
temp
.
data
()
+
j
,
MGetDenseLink
(
ComposeHandle
Num
(
0
,
k
),
CoordsTag
()),
sizeof
(
Storage
::
real
)
*
dims
);
j
+=
dims
;
}
...
...
@@ -1507,7 +1507,7 @@ namespace INMOST
j
=
0
;
for
(
Storage
::
integer
k
=
0
;
k
<
NodeLastLocalID
();
++
k
)
if
(
isValidElement
(
0
,
k
)
)
{
memcpy
(
MGetDenseLink
(
ComposeHandle
(
0
,
k
),
CoordsTag
()),
temp
.
data
()
+
j
,
sizeof
(
Storage
::
real
)
*
dims
);
memcpy
(
MGetDenseLink
(
ComposeHandle
Num
(
0
,
k
),
CoordsTag
()),
temp
.
data
()
+
j
,
sizeof
(
Storage
::
real
)
*
dims
);
j
+=
dims
;
}
dim
=
dims
;
...
...
@@ -1536,7 +1536,7 @@ namespace INMOST
back_links
[
etypenum
][
ADDR
]
=
-
1
;
empty_space
[
etypenum
].
push_back
(
ADDR
);
empty_links
[
etypenum
].
push_back
(
ID
);
//REPORT_VAL("destroyed",ComposeHandle(etypenum,ID) << " " << etypenum << " " << ADDR << " " << ID);
//REPORT_VAL("destroyed",ComposeHandle
Num
(etypenum,ID) << " " << etypenum << " " << ADDR << " " << ID);
}
}
...
...
@@ -1576,7 +1576,7 @@ namespace INMOST
new_size
=
GetArrayCapacity
(
etypenum
);
if
(
new_size
!=
old_size
)
ReallocateData
(
etypenum
,
new_size
);
back_links
[
etypenum
][
ADDR
]
=
ID
;
last_created
=
ComposeHandle
(
etypenum
,
ID
);
last_created
=
ComposeHandle
Num
(
etypenum
,
ID
);
//REPORT_VAL("created",last_created << " " << etypenum << " " << ADDR << " " << ID);
}
return
ID
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment