27 #ifndef MLN_TRAIT_IMAGE_PROPS_HH
28 # define MLN_TRAIT_IMAGE_PROPS_HH
38 # include <mln/trait/undef.hh>
39 # include <mln/trait/value/kind.hh>
41 # include <mln/core/def/coord.hh>
371 struct any {
protected: any() {} };
372 struct primary : any { std::string name()
const {
return "category::primary"; } };
373 struct morpher : any {
protected: morpher() {} };
374 struct domain_morpher
375 : morpher { std::string name()
const {
return "category::domain_morpher"; } };
377 : morpher { std::string name()
const {
return "category::value_morpher"; } };
378 struct identity_morpher
379 : morpher { std::string name()
const {
return "category::identity_morpher"; } };
393 struct any {
protected: any() {} };
394 struct slow : any { std::string name()
const {
return "speed::slow"; } };
395 struct fast : any { std::string name()
const {
return "speed::fast"; } };
397 : fast { std::string name()
const {
return "speed::fastest"; } };
409 struct any {
protected: any() {} };
410 struct huge : any { std::string name()
const {
return "size::huge"; } };
411 struct regular : any { std::string name()
const {
return "size::regular"; } };
425 struct any {
protected: any() {} };
426 struct direct : any { std::string name()
const {
return "value_access::direct"; } };
427 struct indirect : any { std::string name()
const {
return "value_access::indirect"; } };
428 struct computed : any { std::string name()
const {
return "value_access::computed"; } };
448 struct any {
protected: any() {} };
450 : any {
protected: organized() {} };
452 : organized { std::string name()
const {
return "value_storage::singleton"; } };
454 : organized { std::string name()
const {
return "value_storage::one_block"; } };
456 : organized { std::string name()
const {
return "value_storage::piecewise"; } };
457 struct disrupted : any { std::string name()
const {
return "value_storage::disrupted"; } };
467 struct value_alignment
469 struct any {
protected: any() {} };
471 : any { std::string name()
const {
return "value_alignment::with_grid"; } };
473 : any { std::string name()
const {
return "value_alignment::not_aligned"; } };
475 : any { std::string name()
const {
return "value_alignment::irrelevant"; } };
486 struct any {
protected: any() {} };
488 : any { std::string name()
const {
return "pw_io::read"; } };
490 : any { std::string name()
const {
return "pw_io::read_write"; } };
501 struct any {
protected: any() {} };
502 struct some : any {
protected: some() {} };
504 : some { std::string name()
const {
return "vw_io::read"; } };
506 : some { std::string name()
const {
return "vw_io::read_write"; } };
508 : any { std::string name()
const {
return "vw_io::none"; } };
523 struct any {
protected: any() {} };
524 struct some : any {
protected: some() {} };
526 : any { std::string name()
const {
return "vw_set::none";} };
528 : some { std::string name()
const {
return "vw_set::uni";} };
530 : some { std::string name()
const {
return "vw_set::multi";} };
545 struct value_browsing
547 struct any {
protected: any() {} };
548 struct site_wise_only
549 : any { std::string name()
const {
return "value_browsing::site_wise_only"; } };
551 :
virtual any { std::string name()
const {
return "value_browsing::cell_wise"; } };
553 :
virtual any { std::string name()
const {
return "value_browsing::value_wise"; } };
554 struct cell_and_value_wise
557 { std::string name()
const {
return "value_browsing::cell_and_value_wise"; } };
570 struct any {
protected: any() {} };
572 : any { std::string name()
const {
return "value_io::read_only"; } };
574 : any { std::string name()
const {
return "value_io::read_write"; } };
594 struct any {
protected: any() {} };
595 struct none : any { std::string name()
const {
return "localization::none"; } };
596 struct space : any { std::string name()
const {
return "localization::space"; } };
597 struct grid : space {
protected: grid() {} };
598 struct isotropic_grid
599 : grid { std::string name()
const {
return "localization::isotropic_grid"; } };
601 : isotropic_grid { std::string name()
const {
return "localization::basic_grid"; } };
602 struct anisotropic_grid
603 : grid { std::string name()
const {
return "localization::anisotropic_grid"; } };
621 struct any {
protected: any() {} };
622 struct none : any { std::string name()
const {
return "dimension::none"; } };
624 : any {
protected: some() {} };
625 struct one_d : some { std::string name()
const {
return "dimension::one_d"; } };
626 struct two_d : some { std::string name()
const {
return "dimension::two_d"; } };
627 struct three_d : some { std::string name()
const {
return "dimension::three_d"; } };
645 struct any {
protected: any() {} };
646 struct none : any { std::string name()
const {
return "ext_domain::none"; } };
648 : any {
protected: some() {} };
649 struct extendable : some { std::string name()
const {
return "ext_domain::extendable"; } };
650 struct fixed : some { std::string name()
const {
return "ext_domain::fixed"; } };
651 struct infinite : fixed { std::string name()
const {
return "ext_domain::infinite"; } };
665 struct any {
protected: any() {} };
666 struct irrelevant : any { std::string name()
const {
return "ext_value::irrelevant"; } };
667 struct single : any { std::string name()
const {
return "ext_value::single"; } };
668 struct multiple : any { std::string name()
const {
return "ext_value::multiple"; } };
682 struct any {
protected: any() {} };
684 : any { std::string name()
const {
return "ext_io::irrelevant"; } };
686 : any { std::string name()
const {
return "ext_io::read_only"; } };
688 : any { std::string name()
const {
return "ext_io::read_write"; } };
718 typedef mln::trait::value::kind
kind;
733 struct any {
protected: any() {} };
734 struct scalar : any { std::string name()
const {
return "nature::scalar"; } };
735 struct vectorial : any { std::string name()
const {
return "nature::vectorial"; } };
736 struct structed : any { std::string name()
const {
return "nature::structed"; } };
737 struct pointer : any { std::string name()
const {
return "nature::pointer"; } };
749 struct any {
protected: any() {} };
750 struct low : any { std::string name()
const {
return "quant::low"; } };
751 struct high : any { std::string name()
const {
return "quant::high"; } };
778 template <
typename M,
typename C>
struct point;
794 template <
typename P>
795 struct space_from_point
796 {
typedef undef
ret; };
799 struct space_from_point<point1d>
800 {
typedef trait::image::dimension::one_d
ret; };
803 struct space_from_point<point2d>
804 {
typedef trait::image::dimension::two_d
ret; };
807 struct space_from_point<point3d>
808 {
typedef trait::image::dimension::three_d
ret; };
818 #endif // ! MLN_TRAIT_IMAGE_PROPS_HH