20 #ifndef BASE_SPACE_FACTORY_IMPL_H 21 #define BASE_SPACE_FACTORY_IMPL_H 23 #ifndef SHEAF_DLL_SPEC_H 24 #include "SheafSystem/sheaf_dll_spec.h" 27 #ifndef BASE_SPACE_FACTORY_H 28 #include "SheafSystem/base_space_factory.h" 31 #ifndef ASSERT_CONTRACT_H 32 #include "SheafSystem/assert_contract.h" 35 #ifndef ERROR_MESSAGE_H 36 #include "SheafSystem/error_message.h" 39 #ifndef FIBER_BUNDLES_NAMESPACE_H 40 #include "SheafSystem/fiber_bundles_namespace.h" 51 template <
typename base_type>
62 local_cell_prototype_path =
"";
74 template <
typename base_type>
93 template <
typename base_type>
101 require(!path.empty());
114 result = &base_type::standard_host(xns, path.poset_name(),
false);
121 ensure(result->
path(
true) == path);
130 template <
typename base_type>
138 require(xbase_path.
full());
144 base_type* result = new_base(xns, xbase_path.
member_name());
150 ensure(result->path(
true) == xbase_path);
159 template <
typename base_type>
172 base_type* result =
new base_type;
174 poset_path lbase_path(path.poset_name(), xbase_name);
176 result->attach_to_state(&xns, lbase_path);
182 ensure(result->path() ==
poset_path(path.poset_name(), xbase_name));
198 #endif // BASE_SPACE_FACTORY_IMPL_H virtual poset_path path(bool xauto_access=true) const
The path of this poset.
bool full() const
True if both poset name and member name are not empty.
virtual ~base_space_factory()
Destructor.
bool state_is_read_accessible() const
True if this is attached and if the state is accessible for read or access control is disabled...
The standard fiber bundles name space; extends the standard sheaves namespace by defining base space...
bool contains_poset_member(pod_index_type xposet_hub_id, pod_index_type xmember_hub_id, bool xauto_access=true) const
True if this contains a poset with hub id xposet_hub_id which contains a member with hub id xmember_h...
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
base_space_poset * new_space(fiber_bundles_namespace &xns)
Finds or creates the base space poset specified by path in namespace xns.
poset_state_handle & member_poset(pod_index_type xhub_id, bool xauto_access=true) const
The poset_state_handle object referred to by hub id xhub_id.
base_space_factory()
Default constructor.
The lattice of closed cells of a cellular space; a lattice representation of a computational mesh...
std::string poset_name() const
The poset name part of the path.
bool contains_poset(pod_index_type xhub_id, bool xauto_access=true) const
True if this contains a poset with hub id xhub_id..
std::string member_name() const
The member name part of the path.
static bool is_valid_name(const std::string &xname)
True if xname is not empty and contains only name legal characters.
Namespace for the fiber_bundles component of the sheaf system.
base_type * new_base(fiber_bundles_namespace &xns, const poset_path &xbase_path)
Finds or creates the base space specified by xbase_path in namespace xns.