26 #ifndef MLN_TRAIT_IMAGE_PROPS_HH
27 # define MLN_TRAIT_IMAGE_PROPS_HH
37 # include <mln/trait/undef.hh>
38 # include <mln/trait/value/kind.hh>
40 # include <mln/core/def/coord.hh>
370 struct any {
protected: any() {} };
371 struct primary : any { std::string name()
const {
return "category::primary"; } };
372 struct morpher : any {
protected: morpher() {} };
373 struct domain_morpher
374 : morpher { std::string name()
const {
return "category::domain_morpher"; } };
376 : morpher { std::string name()
const {
return "category::value_morpher"; } };
377 struct identity_morpher
378 : morpher { std::string name()
const {
return "category::identity_morpher"; } };
392 struct any {
protected: any() {} };
393 struct slow : any { std::string name()
const {
return "speed::slow"; } };
394 struct fast : any { std::string name()
const {
return "speed::fast"; } };
396 : fast { std::string name()
const {
return "speed::fastest"; } };
408 struct any {
protected: any() {} };
409 struct huge : any { std::string name()
const {
return "size::huge"; } };
410 struct regular : any { std::string name()
const {
return "size::regular"; } };
424 struct any {
protected: any() {} };
425 struct direct : any { std::string name()
const {
return "value_access::direct"; } };
426 struct indirect : any { std::string name()
const {
return "value_access::indirect"; } };
427 struct computed : any { std::string name()
const {
return "value_access::computed"; } };
447 struct any {
protected: any() {} };
449 : any {
protected: organized() {} };
451 : organized { std::string name()
const {
return "value_storage::singleton"; } };
453 : organized { std::string name()
const {
return "value_storage::one_block"; } };
455 : organized { std::string name()
const {
return "value_storage::piecewise"; } };
456 struct disrupted : any { std::string name()
const {
return "value_storage::disrupted"; } };
466 struct value_alignment
468 struct any {
protected: any() {} };
470 : any { std::string name()
const {
return "value_alignment::with_grid"; } };
472 : any { std::string name()
const {
return "value_alignment::not_aligned"; } };
474 : any { std::string name()
const {
return "value_alignment::irrelevant"; } };
485 struct any {
protected: any() {} };
487 : any { std::string name()
const {
return "pw_io::read"; } };
489 : any { std::string name()
const {
return "pw_io::read_write"; } };
500 struct any {
protected: any() {} };
501 struct some : any {
protected: some() {} };
503 : some { std::string name()
const {
return "vw_io::read"; } };
505 : some { std::string name()
const {
return "vw_io::read_write"; } };
507 : any { std::string name()
const {
return "vw_io::none"; } };
522 struct any {
protected: any() {} };
523 struct some : any {
protected: some() {} };
525 : any { std::string name()
const {
return "vw_set::none";} };
527 : some { std::string name()
const {
return "vw_set::uni";} };
529 : some { std::string name()
const {
return "vw_set::multi";} };
544 struct value_browsing
546 struct any {
protected: any() {} };
547 struct site_wise_only
548 : any { std::string name()
const {
return "value_browsing::site_wise_only"; } };
550 :
virtual any { std::string name()
const {
return "value_browsing::cell_wise"; } };
552 :
virtual any { std::string name()
const {
return "value_browsing::value_wise"; } };
553 struct cell_and_value_wise
556 { std::string name()
const {
return "value_browsing::cell_and_value_wise"; } };
569 struct any {
protected: any() {} };
571 : any { std::string name()
const {
return "value_io::read_only"; } };
573 : any { std::string name()
const {
return "value_io::read_write"; } };
593 struct any {
protected: any() {} };
594 struct none : any { std::string name()
const {
return "localization::none"; } };
595 struct space : any { std::string name()
const {
return "localization::space"; } };
596 struct grid : space {
protected: grid() {} };
597 struct isotropic_grid
598 : grid { std::string name()
const {
return "localization::isotropic_grid"; } };
600 : isotropic_grid { std::string name()
const {
return "localization::basic_grid"; } };
601 struct anisotropic_grid
602 : grid { std::string name()
const {
return "localization::anisotropic_grid"; } };
620 struct any {
protected: any() {} };
621 struct none : any { std::string name()
const {
return "dimension::none"; } };
623 : any {
protected: some() {} };
624 struct one_d : some { std::string name()
const {
return "dimension::one_d"; } };
625 struct two_d : some { std::string name()
const {
return "dimension::two_d"; } };
626 struct three_d : some { std::string name()
const {
return "dimension::three_d"; } };
644 struct any {
protected: any() {} };
645 struct none : any { std::string name()
const {
return "ext_domain::none"; } };
647 : any {
protected: some() {} };
648 struct extendable : some { std::string name()
const {
return "ext_domain::extendable"; } };
649 struct fixed : some { std::string name()
const {
return "ext_domain::fixed"; } };
650 struct infinite : fixed { std::string name()
const {
return "ext_domain::infinite"; } };
664 struct any {
protected: any() {} };
665 struct irrelevant : any { std::string name()
const {
return "ext_value::irrelevant"; } };
666 struct single : any { std::string name()
const {
return "ext_value::single"; } };
667 struct multiple : any { std::string name()
const {
return "ext_value::multiple"; } };
681 struct any {
protected: any() {} };
683 : any { std::string name()
const {
return "ext_io::irrelevant"; } };
685 : any { std::string name()
const {
return "ext_io::read_only"; } };
687 : any { std::string name()
const {
return "ext_io::read_write"; } };
717 typedef mln::trait::value::kind kind;
732 struct any {
protected: any() {} };
733 struct scalar : any { std::string name()
const {
return "nature::scalar"; } };
734 struct vectorial : any { std::string name()
const {
return "nature::vectorial"; } };
735 struct structed : any { std::string name()
const {
return "nature::structed"; } };
736 struct pointer : any { std::string name()
const {
return "nature::pointer"; } };
748 struct any {
protected: any() {} };
749 struct low : any { std::string name()
const {
return "quant::low"; } };
750 struct high : any { std::string name()
const {
return "quant::high"; } };
774 template <
typename M,
typename C>
struct point;
775 typedef point<grid::tick, def::coord>
point1d;
776 typedef point<grid::square, def::coord>
point2d;
777 typedef point<grid::hexa, def::coord>
point2d_h;
778 typedef point<grid::cube, def::coord>
point3d;
787 template <
typename P>
788 struct space_from_point
789 {
typedef undef ret; };
792 struct space_from_point<
point1d>
793 {
typedef trait::image::dimension::one_d ret; };
796 struct space_from_point<
point2d>
797 {
typedef trait::image::dimension::two_d ret; };
800 struct space_from_point<
point3d>
801 {
typedef trait::image::dimension::three_d ret; };
811 #endif // ! MLN_TRAIT_IMAGE_PROPS_HH