[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference azur::mcc

Title:DECmcc user notes file. Does not replace IPMT.
Notice:Use IPMT for problems. Newsletter location in note 6187
Moderator:TAEC::BEROUD
Created:Mon Aug 21 1989
Last Modified:Wed Jun 04 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:6497
Total number of notes:27359

1257.0. "some decc map questions" by CLARID::HOFSTEE (Take a RISC, buy a VAX) Wed Jul 17 1991 09:29

I have two questions with respect to DECmcc maps.

1. Are the files that contain the descriptions of the map
   (like for example MCC_F87C000400AA000001CA432F327C20C0.MCC_MAP_MYDOMAIN;1)
   always stored in sys$manager. On my system they are, but I don't know if
   that applies in general.

2. I have read in a document that all map coordinates are mapped in the square
   user space determined by the coordinates (0,0) (5,5). But how many
   pixels does this map onto in the real window? What I mean is: if I have
   an icon that is defined as 40 high and 40 width, if I would map this onto
   the (0,0) (5,5) space, It would fill the whole space . However, on the 
   screen , it appears as a small square in the whole window. This means
   that the (0,0) (5,5) space , is mapped onto something like 800 pixels
   high and 400 pixels wide. COuld someone tell me what the height and width is
   of the decmcc map in pixels?

Thanks

Timo


T.RTitleUserPersonal
Name
DateLines
1257.1TOOK::F_MESSINGERWed Jul 17 1991 10:0531
1. Are the files that contain the descriptions of the map
   (like for example MCC_F87C000400AA000001CA432F327C20C0.MCC_MAP_MYDOMAIN;1)
   always stored in sys$manager. On my system they are, but I don't know if
   that applies in general.
>>
>> On VMS maps are read from and written to the directory pointed to by 
>> MCC_MAPS.  For icons, it it MCC_ICONS.
>> You can change the logical to point to wherever you want.
>>


2. I have read in a document that all map coordinates are mapped in the square
   user space determined by the coordinates (0,0) (5,5). But how many
   pixels does this map onto in the real window? What I mean is: if I have
   an icon that is defined as 40 high and 40 width, if I would map this onto
   the (0,0) (5,5) space, It would fill the whole space . However, on the 
   screen , it appears as a small square in the whole window. This means
   that the (0,0) (5,5) space , is mapped onto something like 800 pixels
   high and 400 pixels wide. COuld someone tell me what the height and width is
   of the decmcc map in pixels?

>>World coords have a minimum value of (0.0,0.0)->(5.0,5.0).  If the data in 
>>in the map file exceeds these boundaries(eg you have an icon at (3000.0,4000.5),
>>I will resize the world (Geez, I wish I had this power in real life!) to 
>>accomodate that data.  Icons on the other hand, are pixel based.  40x40
>>means just that: 40 pixels by 40 pixels.  The amount of world space taken up by
>>one pixel will vary depending on the range of real world data.
>>
>>What problem are you trying to solve?

Fred
1257.2Check out your logicalsNSSG::R_SPENCENets don't fail me now...Wed Jul 17 1991 14:0719
    Note that the default definition for MCC_MAPS is
    "SYS$DISK:[],MCC_COMMON" so if you were logged into the SYSTEM account,
    that's where the files would end up.
    
    Actually, I think it would be better if they left out MCC_COMMON and
    picked, for example SYS$LOGIN so at least for any one user, the files
    would always be in the same space. Now it depends on the current
    directory when they start up DECmcc.
    
    What I did to change the logicals was to add one line to the end
    of the SYS$STARTUP:MCC_LOGICAL_DIR.COM file like
    @SYS$MANAGER:LOCAL_MCC_LOGICALS.COM and then put my changed logicals
    in the local file. The reason? Well, when a new version of DECmcc is
    installed, it will likely replace MCC_LOGICAL_DIR.COM and with it all
    the local logicals. This way you only need to remember to add the
    pointer to the logicals, not all the definitions (I learned this the
    hard way after installing lots of interim baselevels).
    
    s/rob
1257.3some more clarification neededCLARID::HOFSTEETake a RISC, buy a VAXThu Jul 18 1991 05:3140
 On VMS maps are read from and written to the directory pointed to by 
 MCC_MAPS.  For icons, it it MCC_ICONS.
 You can change the logical to point to wherever you want.


>If this is true, than why do I see on my system:
>
>$ dir mcc_maps:*.mcc_map_mydomain
>%DIRECT-W-NOFILES, no files found
>$ dir sys$manager:*.mcc_map_mydomain
>
>Directory SYS$SYSROOT:[SYSMGR]
>
>MCC_F87C000400AA000001CA432F327C20C0.MCC_MAP_MYDOMAIN;1
>
>Total of 1 file.
>$ sh log mcc_maps
>   "MCC_MAPS" = "SYS$DISK:[]" (LNM$SYSTEM_TABLE)
>        = "MCC_COMMON"
>1  "MCC_COMMON" = "SYS$COMMON:[MCC]" (LNM$SYSTEM_TABLE)

>>World coords have a minimum value of (0.0,0.0)->(5.0,5.0).  If the data in 
>>in the map file exceeds these boundaries(eg you have an icon at (3000.0,4000.5),
>>I will resize the world (Geez, I wish I had this power in real life!) to 
>>accomodate that data.  Icons on the other hand, are pixel based.  40x40
>>means just that: 40 pixels by 40 pixels.  The amount of world space taken up by
>>one pixel will vary depending on the range of real world data.
>>
This exactly what I want to now. You say that it varies depending on the real
world coordinates. How does it vary. In other words, what transformation do
you use, to map a 40*40 icon into the (0,0)(0,5) world space? Do you
multiply it with 1/100 or 1/1000 or whatever?

>>What problem are you trying to solve?

I am trying to make a printout on the same scale as the map  appears in
the navigation window on the screen

Timo
1257.4TOOK::F_MESSINGERThu Jul 18 1991 08:3039
>>

>If this is true, than why do I see on my system:
>
>$ dir mcc_maps:*.mcc_map_mydomain
>%DIRECT-W-NOFILES, no files found
>$ dir sys$manager:*.mcc_map_mydomain
>
>Directory SYS$SYSROOT:[SYSMGR]
>
>MCC_F87C000400AA000001CA432F327C20C0.MCC_MAP_MYDOMAIN;1
>
>Total of 1 file.
>$ sh log mcc_maps
>   "MCC_MAPS" = "SYS$DISK:[]" (LNM$SYSTEM_TABLE)
>        = "MCC_COMMON"
>1  "MCC_COMMON" = "SYS$COMMON:[MCC]" (LNM$SYSTEM_TABLE)


I don't know...can anyone else help?



>>This exactly what I want to now. You say that it varies depending on the real
>>world coordinates. How does it vary. In other words, what transformation do
>>you use, to map a 40*40 icon into the (0,0)(0,5) world space? Do you
>>multiply it with 1/100 or 1/1000 or whatever?

The GObE widget(which is what I am using to model the world space) handles this.  
I don't know what it is.

>>I am trying to make a printout on the same scale as the map  appears in
>>the navigation window on the screen

It's not obvious to me at this point how to go about doing this with the limited
amount of info in the map file.  Maybe it's possible, maybe it's not.  But what
we might be able to do is give you the info you need in v1.2.

Fred
1257.5Check the logicals...NSSG::R_SPENCENets don't fail me now...Thu Jul 18 1991 10:5815
    If the logical MCC_MAPS is pointed to SYS$DISK:[] and the current
    directory is not set to the area where the maps ARE, you won't see
    them.
    
    Re; .-1
    Please also include a SHOW DEFAULT output.
    
    Note that SYS$MANAGER is a search path and contains more than one
    directory. The definition of MCC_MAPS was also a search path.
    
    As I said earlier, I reccomend that you define MCC_MAPS to a specific
    place and not let it float all over the place.
    
    s/rob
    
1257.6some answers. more questionsCLARID::HOFSTEETake a RISC, buy a VAXThu Jul 18 1991 10:5940
Ok, Let's leave the logical name issue to another guru.

>The GObE widget(which is what I am using to model the world space) handles this.  
>I don't know what it is.

Well , SOMEwhere you have to tell GObe what the pixel size of the navigation
window is. Now maybe it uses some internal default (I don't know GObe), but
it is clear that somehow it KNOWS that it has to scale a 40*40 pixel icon
onto , let's say 0.1*0.1 userspace (so divide by 400). Or vice versa, map
(0,0)(5,5)userspace onto 2000*2000 pixels.


>It's not obvious to me at this point how to go about doing this with the limited
>amount of info in the map file.  Maybe it's possible, maybe it's not. 

Well, all I need to regenarate the picture is in the mapfile, except from those
translation factors. Now of course, I could have a look on the screen and 
measure that there fit for example 100 icons horizontal and 100 vertical in
the navigation window and deduct from that, that the (0,0)(5,5) worldspace is
mapped onto 100*40=4000 pixels high and wide. Now this would work , as long
as the worldspace wouldn't change. This brings me to my next question:

How can the user extend the worldspace? In other words, how will he be able
to put something on let's say (10,10)? Or more general, how do I make REALLY
big maps that don't fit into the standard navigation window when you startup
DECmcc?

Now suppose that I can do this (put something on 10,10 ).
 Then I also suppose that everything that everything that 
previously filled up the complete navigation window in worldspace (0,0)(5,5)
will now be mapped into the lower left quadrant of the navigation window
which is now mapped onto (0,0)(10,10). And this would then mean that I have
to use another scaling factor to keep the icons the same size with respect
to each other.

If this is becoming to detailed, maybe we could take this offline, unless
other people are also interested .

Timo
1257.7TOOK::F_MESSINGERThu Jul 18 1991 15:0318
Well , SOMEwhere you have to tell GObe what the pixel size of the navigation
window is. Now maybe it uses some internal default (I don't know GObe), but
it is clear that somehow it KNOWS that it has to scale a 40*40 pixel icon
onto , let's say 0.1*0.1 userspace (so divide by 400). Or vice versa, map
(0,0)(5,5)userspace onto 2000*2000 pixels.

>>The user may specify a navigation window size in the mcc_resource.dat
>>file.  We read this value from the file and give it directly to gobe.
>>From then on our UI knows nothing of the world to device coordinate 
>>translation.

How can the user extend the worldspace? In other words, how will he be able
to put something on let's say (10,10)? Or more general, how do I make REALLY

>>  They can't, unless they edit the map file.

Fred
1257.8creating worldspace.disappearing icon_fileCLARID::HOFSTEETake a RISC, buy a VAXFri Jul 19 1991 05:3374
>>The user may specify a navigation window size in the mcc_resource.dat

Is there a logical pointing to this file?

>How can the user extend the worldspace? In other words, how will he be able
>to put something on let's say (10,10)? Or more general, how do I make REALLY

>>  They can't, unless they edit the map file.

Well, I found a way to do it through the user interface, but from the fact
that you say it cannot be done, I guess that it is an undocumented 'feature'.
How to do it? 
Start mcc. You will now have a window on the left upper corner of your screen.
Make the navigation window visible. Put a node on the upper left corner of
the navigation window, and one in the upper right corner. So their coordinates
will be something like (0.1,4.9) and (4.9,4.9). Now resize the topology
window so that it occupies your whole screen. You will see in the navigation
window, that the nodes that were previously on the top of the navigation
window, have moved down. What you've actually done is creating extra world 
space. You can check this by moving the node in the upper right corner, to the
'new' upper right corner in the navigation window. When you save the map, you
will see that the new coordinates are now something like 

 object_type 1
   mcc_code 8
   center_x 5.983576   center_y 5.631081
   text_x 5.905613   text_y 5.551662
   name   .subdomain
 
And as you see, the coordinates are greater than (5.0). By repeating the 
above procedure, you can create more and more worldspace, untill you get
start getting messages like: 'integer overflow ' and 'not enough resources'.

By playing around with the above, I noticed that sometimes in my map file,
the icon_file labels disappear. Is there an explanation for that? For example
my current map file in mcc_maps, looks like:


 version 0
 domain mydomain
 last_x 4.004158 last_y 4.043659

 object_type 1
   mcc_code 8
   center_x 5.983576   center_y 5.631081
   text_x 5.905613   text_y 5.551662
   name   .subdomain

 object_type 1
   mcc_code 12
   center_x 0.039501   center_y 4.872765
   text_x -0.003117   text_y 4.792307
   name   .gibby

 object_type 1
   mcc_code 12
   center_x 0.041788   center_y 4.955925
   text_x 0.010603   text_y 4.875468
   name   .chic

 object_type 1
   icon_file MCC_NODE4_ICON.DAT
   mcc_code 12
   center_x 0.119544   center_y 4.875260
   text_x 0.069648   text_y 4.794802
   name   .netsys

and as you can see, only the last node has an icon_file label. The other
nodes haven't, although they still appear correct on my map.

Thanks

Timo
1257.9TOOK::F_MESSINGERFri Jul 19 1991 09:1420
Is there a logical pointing to this file?

>>The standard dew$user_defaults or decw$system_defaults.
 
And as you see, the coordinates are greater than (5.0). By repeating the 
above procedure, you can create more and more worldspace, untill you get
start getting messages like: 'integer overflow ' and 'not enough resources'.

>>Maybe I should have said "you can't do it reliably"

By playing around with the above, I noticed that sometimes in my map file,
the icon_file labels disappear. Is there an explanation for that? For example
my current map file in mcc_maps, looks like:

>>When we start up, I look for icons in MCC_ICONS:.  If I doon't find any, I use
>>an internal default.  If you then create a map with icons and save it, I will
>>not save the icon file name in the map since there is no name to save.

Fred
1257.10but how do you recreate it than?CLARID::HOFSTEETake a RISC, buy a VAXSat Jul 20 1991 07:2713
>When we start up, I look for icons in MCC_ICONS:.  If I doon't find any, I use
>an internal default.  If you then create a map with icons and save it, I will
>not save the icon file name in the map since there is no name to save.

I don't really understand this. If you don't find icons in mcc_icons: than
how can you create a map with icons? And if you have saved a file without
an icon_file label, what kind of icon do you use when that domain is later
on opened again?

Thanks


Timo
1257.11TOOK::F_MESSINGERSat Jul 20 1991 13:3710
I don't really understand this. If you don't find icons in mcc_icons: than
how can you create a map with icons? 
>>I have an internal, hard coded icon that I'll use...It is has a question
>>    mark in the middle of it.
    
    And if you have saved a file without
an icon_file label, what kind of icon do you use when that domain is later
on opened again?
    >> The question mark.
    
1257.12mcc code lables?CLARID::HOFSTEETake a RISC, buy a VAXMon Jul 22 1991 04:5512
Fred, to keep things consistent, maybe you could mail me the icon file
for this 'unknown' symbol.

Next question: Are the mcc_code labels in the mapfile used in any way to 
create the map? I have some summary description of what values these codes
can have , but it doesn't say exactly what and how they are used for.

Thanks

Timo    

1257.13object types 3 and 4?CLARID::HOFSTEETake a RISC, buy a VAXMon Jul 22 1991 05:3513

According to my doc, I can have object type 2 (straight line), object type 3
(multi segment) and object type 4 (multi segment) in my mapfile. Now how
do I create object type 3 and 4 with the toolbox? In the examples that I
have, the object types 3 and 4 have no line_width label. Is this always
the case, or is the line width label always optional, and if so what
default size is used.

Thanks

Timo

1257.14TOOK::F_MESSINGERMon Jul 22 1991 11:0228
re last couple

Next question: Are the mcc_code labels in the mapfile used in any way to 
create the map? I have some summary description of what values these codes
can have , but it doesn't say exactly what and how they are used for.

>>  They are used exclusively for managing the object on the map.  If you have
>>  the icon file, it doesn't seem like you would need this number.  If you did
>>  need to know whether an object was a node as opposed to a bridge, we've
>>  embedded the object class into the icon file name eg. MCC_BRIDGE_*_icon.dat. 


According to my doc, I can have object type 2 (straight line), object type 3
(multi segment) and object type 4 (multi segment) in my mapfile. Now how
do I create object type 3 and 4 with the toolbox? In the examples that I
have, the object types 3 and 4 have no line_width label. Is this always
the case, or is the line width label always optional, and if so what

>> 3's and 4's were meant to always represent "geographical" bodies.  For 
>> performance reasons they always have a pixel width of 1.  The server draws
>> a 1 pixel wide line much faster than a N pixel wide line and for geographical
>> backdrops, the number of lines the server has to draw can easily be in the
>> gazillions.
>> There is a note in here somewhere describing a tool someone did to 
>> facilitate drawing these things objects.

Fred
1257.15clarification on icon_file labels?CLARID::HOFSTEETake a RISC, buy a VAXThu Aug 01 1991 05:3532

I would like to come back on my question in .9 about icon_file labels. I
understand that if the icon file is not in mcc_icons, you don't save the
icon_file label. However, I have seen now several maps that look like:

object_type 1
   mcc_code 8
   center_x 0.195426   center_y 4.677754
   text_x 0.100832   text_y 4.598336
   name   TESTDOMAIN1

 object_type 1
   icon_file MCC_DOMAIN_ICON.DAT
   mcc_code 8
   center_x 0.567568   center_y 4.669438
   text_x 0.472973   text_y 4.590020
   name   TESTDOMAIN2

in which the first icon is the same domain icon as the second one. So the
icon file is there in MCC_ICONS. When I reopen this file that contains two
domain icons, I see indeed two domain icons. So my two questions are:

1. Why do I sometimes have map files that don't have an icon_file label, while
   the icon file DOES exist in MCC_ICONS?

2. When you redisplay such a file, how do you figure out what icon file to use,
   because apparently when DECmcc redisplays the file, the icons come out ok.

Thanks

Timo
1257.16TOOK::F_MESSINGERThu Aug 01 1991 09:1628
Hi Timo,

When we start up, I create an internal list of the icons I saw in MCC_ICONS.
For each list entry, there are two peices of information:  The icon file name
and the entity class code. eg. MCC_DOMAIN_ICON.DAT  8, MCC_NODE4_ICON.DAT 12.

When I read an icon out of a map file I see mcc_code 12 and I may or may not
see icon_file.  If I see icon_file "file_name"  I will search the list I 
created (above) looking for the icon file name.  If I find it, I use that file.
If I don't find it I will search the same list looking for the mcc_code (the 12).

If I find the 12 I will use the file name paired up with it.  If the 12 did
not have a file name paired up with it (meaning I found no MCC_NODE4_ICON.DAT
file) then I will use the internally hardcoded "unknown icon"...the one
with the big question mark in it.

Now, when I save a map, the only time I write out icon_file "..." is when I know
I have read in a file name for that icon from the input file or the user has 
placed one in the map from the toolbox or the addbox (the box of icons at the
bottom of the add form).

As to your question about why some domain map entries have icon_file and some 
do not, I'd *guess* that some domain members were put on the map when MCC_ICONS
was not defined properly and others were put on the map when it was defined 
properly.  Just a guess!

Fred
1257.17NSSG::R_SPENCENets don't fail me now...Thu Aug 01 1991 10:505
    Another way for the icons to be put there without lables would be
    if one created some domain members from the FCL and the IMPM then
    autoplaced (and picked the default icons for the class)???
    
    s/rob
1257.18TOOK::F_MESSINGERThu Aug 01 1991 15:476
Even if the members were created via FCL I would have matched up on the
icon that appears in the toolbox (the default class icon) and written it
to the map file.

Fred
1257.19so normally the labels should be there.CLARID::HOFSTEETake a RISC, buy a VAXFri Aug 02 1991 06:0613

So to resume .16 , I understand that in normal circumstances, all icons
that appear in a map file will have an icon_file label. Only if something
deviates from 'normal' (wrong definition of MCC_ICONS for example), you
might end up with missing icon_file labels.

Fred, do you have a complete list that you use to map mcc_codes into icon
file names?

Thanks

Timo
1257.20TOOK::F_MESSINGERFri Aug 02 1991 07:4510
    
    It is done by reading the MCC dictionary. For each global entity found
    in the dictionary the code and a its name is squirreled away.  Then an
    icon file name is concocted from the entity name; MCC_"NODE"_ICON.DAT.
    
    Does any one else know if there is some kind of registration list
    laying around that Timo's code can read?  If not, could he read the
    dictionary?
    
    Fred 
1257.21let's get the details!CLARID::HOFSTEETake a RISC, buy a VAXFri Aug 02 1991 09:579

Hmmmm, we are really getting into the gory details now. Yes, let's hear it:
how can I hack this 'dictionary' to find out the mcc_code<->global entity 
relationships. I haven't installed the developer's toolkit yet and I haven't
gone through the AM development doc & samples. Maybe this is the right time
to have a look at this?..

Timo
1257.22presentation name for entity classTOOK::CALLANDERJill Callander DTN 226-5316Mon Aug 05 1991 12:0812
the dictionary and how it is set up is discribed int eh SRM. The guide also has 
some info regarding the use and set up of the dictionary as well. 

What you are looking for is the definition called PRESENTATION_NAME for the 
entity class.

dict spec ==  mcc_k_dict_class <class_code>
		mcc_k_dict_definition mcc_k_dd_presentation_name

then call the dict get def info routine.

jill