[BACK]Return to sgiinventor.ftr.src CVS log [TXT][DIR] Up to [Development] / projects / inventor / lib

File: [Development] / projects / inventor / lib / sgiinventor.ftr.src (download)

Revision 1.1, Tue Aug 15 12:56:14 2000 UTC (17 years, 2 months ago) by naaman
Branch point for: MAIN

Initial revision

# NOTE: any unnumbered file type here is assumed to be Inventor 2.0 format.
# This is for legacy reasons only: all future file format versions
# should have a number in their TYPE.

# Add these CONVERT rules to allow routeprint/fileconvert to convert
# Inventor data files into Ascii
#
CONVERT InventorAsciiData AsciiTextFile
	COST 500
# No FILTER is needed since these are equivalent: no conversion required.

CONVERT InventorBinaryData AsciiTextFile
	COST 500
	FILTER /usr/sbin/ivcat

CONVERT InventorDataFile AsciiTextFile
	COST 500
	FILTER /usr/sbin/ivcat

# Add these CONVERTs for efficiency, even though there is already a path
# from the 2.1 to the older InventorDataFile which will work: 
# it is more efficient to skip the extra ivcat.

CONVERT Inventor2.1File AsciiTextFile
	COST 500
	FILTER /usr/sbin/ivcat

CONVERT Inventor2.1Ascii AsciiTextFile
	COST 500
# No FILTER is needed since these are equivalent: no conversion required.

CONVERT Inventor2.1Binary AsciiTextFile
	COST 500
	FILTER /usr/sbin/ivcat


CONVERT InventorAsciiData InventorDataFile
	COST 50
# No FILTER necessary, these types are equivalent

CONVERT InventorBinaryData InventorDataFile
	COST 50
	FILTER /usr/sbin/ivcat

CONVERT Inventor2.1Ascii Inventor2.1File
	COST 50
# No FILTER necessary, these types are equivalent

CONVERT Inventor2.1Binary Inventor2.1File
	COST 50
	FILTER /usr/sbin/ivcat

CONVERT InventorDataFile Inventor2.1File
	COST 50
	FILTER /usr/sbin/ivcat

CONVERT Inventor2.1File InventorDataFile
	COST 125
	FILTER /usr/sbin/ivdowngrade -v 2.0

CONVERT Inventor2.1Ascii InventorAsciiData
	COST 200
	FILTER /usr/sbin/ivdowngrade -v 2.0

CONVERT Inventor2.1Binary InventorAsciiData
	COST 200
	FILTER /usr/sbin/ivdowngrade -v 2.0


# These conversions are for compressed Inventor files:
# Since we can't tell exactly what it is, assume 2.1.
# (There are no compressed Inventor 2.0 or earlier files: we
#  have to assume the least compatible format for any compressed files.)
#
CONVERT Inventor2.1FilePacked Inventor2.1File
	COST 50
	FILTER /usr/bin/pcat

CONVERT Inventor2.1FileCompressed Inventor2.1File
	COST 50
	FILTER /usr/bsd/zcat

#CONVERT for Inventor2.1FileZipped Inventor2.1File is in webspace 1.1


# OK, now put in the TYPE rules for the basic file formats and executables
#
# NOTE: The textual ORDER of the Inventor* file TYPEs is important, 
#       because we want to type more strictly for the 2.1 file and 
#	less strictly for the older files.  Because of the way the FTR
#       compiler/parser works, these rules are scanned in the order
#       in which they appear in the file, and the first MATCH to return TRUE
#       is the type returned by the filetyper.  
# SUMMARY:
#   Do *NOT* put a MORE restrictive MATCH rule after a LESS restrictive rule!
# -- story


TYPE Inventor2.1File
# This is a dummy type used only as an intermediate TYPE for CONVERTs:
# therefore the MATCH rule is explicitly false.  Further, there is no CONVERT
# to this type from the more specific Inventor*{Ascii,Binary}DataFile TYPEs.
    MATCH       false;
    LEGEND	:654:Open Inventor 2.1 data file
    CMD OPEN	/usr/sbin/ivview $LEADER
    CMD ALTOPEN	/usr/sbin/ivview $LEADER
    CMD PRINT   routeprint -t $LEADERTYPE $LEADER $REST
    MENUCMD 	:458:"Edit" $WINEDITOR $LEADER		
    SETVAR      "DefaultExtension"      iv
    ICON {
	include ("iconlib/inventor.data.fti");
    }
# less restrictive must follow more restrictive TYPE
TYPE InventorDataFile
# This is a dummy type used only as an intermediate TYPE for CONVERTs:
# therefore the MATCH rule is explicitly false.  Further, there is no CONVERT
# to this type from the more specific Inventor*{Ascii,Binary}DataFile TYPEs.
    MATCH       false;
    LEGEND	:654:Open Inventor data file
    CMD OPEN	/usr/sbin/ivview $LEADER
    CMD ALTOPEN	/usr/sbin/ivview $LEADER
    CMD PRINT   routeprint -t $LEADERTYPE $LEADER $REST
    MENUCMD 	:458:"Edit" $WINEDITOR $LEADER		
    SETVAR      "DefaultExtension"      iv
    ICON {
	include ("iconlib/inventor.data.fti");
    }

TYPE Inventor2.1Ascii
    MATCH	ascii && (string(0,20) == "#Inventor V2.1 ascii");
    SUPERTYPE	Ascii Inventor2.1File
    LEGEND	:265:Open Inventor 2.1 ascii data file
    CMD OPEN	/usr/sbin/ivview $LEADER
    CMD ALTOPEN	launch -c '/usr/sbin/ivview $LEADER'
    CMD PRINT   routeprint -t $LEADERTYPE $LEADER $REST
    MENUCMD 	:458:"Edit" $WINEDITOR $LEADER		
    SETVAR      "DefaultExtension"      iv
    MAP         "SelectionTarget"   INVENTOR_2_1_FILE
# NOTE: MAP is not valid in 5.3
    ICON {
	include ("iconlib/inventor.data.fti");
    }
# less restrictive must follow more restrictive TYPE
TYPE InventorAsciiData
    MATCH	ascii && (string(0,9) == "#Inventor");
    SUPERTYPE	Ascii InventorDataFile
    LEGEND	:265:Open Inventor ascii data file
    CMD OPEN	/usr/sbin/ivview $LEADER
    CMD ALTOPEN	launch -c '/usr/sbin/ivview $LEADER'
    CMD PRINT   routeprint -t $LEADERTYPE $LEADER $REST
    MENUCMD 	:458:"Edit" $WINEDITOR $LEADER		
    SETVAR      "DefaultExtension"      iv
    MAP         "SelectionTarget"   INVENTOR_2_0_FILE
# NOTE: MAP is not valid in 5.3
    ICON {
	include ("iconlib/inventor.data.fti");
    }
    
TYPE Inventor2.1Binary
    MATCH	(! ascii) && (string(0,21) == "#Inventor V2.1 binary");
    SUPERTYPE	Inventor2.1File
    LEGEND	:266:Open Inventor 2.1 binary data file
    CMD OPEN	/usr/sbin/ivview $LEADER
    CMD ALTOPEN	launch -c '/usr/sbin/ivview $LEADER'
    CMD PRINT   routeprint -g -t $LEADERTYPE $LEADER $REST
    SETVAR      "DefaultExtension"      iv
    MAP         "SelectionTarget"   INVENTOR_2_1_FILE
# NOTE: MAP is not valid in 5.3
    ICON {
	include ("iconlib/inventor.data.fti");
    }
# less restrictive must follow more restrictive TYPE
TYPE InventorBinaryData
    MATCH	(! ascii) && (string(0,9) == "#Inventor");
    SUPERTYPE	InventorDataFile
    LEGEND	:266:Open Inventor binary data file
    CMD OPEN	/usr/sbin/ivview $LEADER
    CMD ALTOPEN	launch -c '/usr/sbin/ivview $LEADER'
    CMD PRINT   routeprint -g -t $LEADERTYPE $LEADER $REST
    SETVAR      "DefaultExtension"      iv
    MAP         "SelectionTarget"   INVENTOR_2_0_FILE
# NOTE: MAP is not valid in 5.3
    ICON {
	include ("iconlib/inventor.data.fti");
    }

TYPE Inventor2.1FileCompressed
# for files which were compressed with "compress"
# actually we have a problem distinguishing between 2.0 and 2.1 files (GEF)
# so we will assume it is a 2.1 file and run ivdowngrade if we need 2.0 (story)
    MATCH	short(0) == 0x1f9d && glob("*.iv.Z");
    SUPERTYPE	Inventor2.1File
    LEGEND	:265:Open Inventor 2.1 data file (compressed)
    CMD OPEN	/usr/sbin/zcat $LEADER | /usr/sbin/ivview
    CMD ALTOPEN	launch -c '/usr/sbin/gzcat $LEADER | /usr/sbin/ivview'
    CMD PRINT   routeprint -t $LEADERTYPE $LEADER $REST
    MENUCMD 	:458:"Edit" $WINEDITOR $LEADER		
    SETVAR      "DefaultExtension"      iv.Z
    MAP         "SelectionTarget"   INVENTOR_2_1_COMPRESSED_FILE
# NOTE: MAP is not valid in 5.3
    ICON {
	include ("iconlib/inventor.data.fti");
    }

TYPE Inventor2.1FilePacked
# for files which were compressed with "pack"
# actually we have a problem distinguishing between 2.0 and 2.1 files (GEF)
# so we will assume it is a 2.1 file and run ivdowngrade if we need 2.0 (story)
    MATCH	short(0) == 017436 && glob("*.iv.z");
    SUPERTYPE	Inventor2.1File
    LEGEND	:265:Open Inventor 2.1 data file (compressed)
    CMD OPEN	/usr/sbin/pcat $LEADER | /usr/sbin/ivview
    CMD ALTOPEN	launch -c '/usr/sbin/gzcat $LEADER | /usr/sbin/ivview'
    CMD PRINT   routeprint -t $LEADERTYPE $LEADER $REST
    MENUCMD 	:458:"Edit" $WINEDITOR $LEADER		
    MAP         "SelectionTarget"   INVENTOR_2_1_COMPRESSED_FILE
# NOTE: MAP is not valid in 5.3
    SETVAR      "DefaultExtension"      iv.z
    ICON {
	include ("iconlib/inventor.data.fti");
    }

TYPE Inventor2.1FileZipped
# for files which were compressed with "gzip"
# actually we have a problem distinguishing between 2.0 and 2.1 files (GEF)
# so we will assume it is a 2.1 file and run ivdowngrade if we need 2.0 (story)
# NOTE: the CONVERT rule is temporarily in WebSpace, until gzip
#       can be prereq'ed by Inventor (ie, when it is bundled on the OS)
    MATCH	(glob("*.iv.gz")
	        || glob("*.iv-gz")
	        || glob("*.iv_z")
		|| glob("*.iv-z"));
    SUPERTYPE	Inventor2.1File
    LEGEND	:265:Open Inventor 2.1 data file (compressed)
    CMD OPEN	/usr/sbin/pcat $LEADER | /usr/sbin/ivview
    CMD ALTOPEN	launch -c '/usr/sbin/gzcat $LEADER | /usr/sbin/ivview'
    CMD PRINT   routeprint -t $LEADERTYPE $LEADER $REST
    MENUCMD 	:458:"Edit" $WINEDITOR $LEADER		
    SETVAR      "DefaultExtension"      iv.gz
    MAP         "SelectionTarget"   INVENTOR_2_1_COMPRESSED_FILE
# NOTE: MAP is not valid in 5.3
    ICON {
	include ("iconlib/inventor.data.fti");
    }

TYPE InventorExecutable
    MATCH	tag == 0x00010510;
    SUPERTYPE	Executable
    LEGEND	:267:Inventor Executable
    CMD OPEN	$LEADER $REST
    CMD ALTOPEN	launch -c $LEADER $REST
    CMD DROP	$TARGET $SELECTED
    ICON {
	if (opened) {
	    include ("iconlib/inventor.open.fti");
	} else {
	    include ("iconlib/inventor.closed.fti");
	}
    }    	

TYPE InventorExecutable2arg
    MATCH	tag == 0x00010511;
    SUPERTYPE	Executable
    LEGEND	:267:Inventor Executable
    CMD OPEN	if [ $ARGC -eq 3 ]
                then
                        $LEADER $REST
                else
                        launch -m "$LEADER `gettxt uxsgidesktop:495 'expects 2 file names.'`" \
                        -c $LEADER $REST
                fi
    CMD ALTOPEN	launch -m "$LEADER `gettxt uxsgidesktop:495 'expects 2 file names.'`" \
                -c $LEADER $REST
    CMD DROP	if [ $ARGC -eq 2 ]
                then
                        $TARGET $SELECTED
                else
                        launch -m "$TARGET `gettxt uxsgidesktop:495 'expects 2 file names.'`" \
                        -c $TARGET $SELECTED
                fi
    ICON {
	if (opened) {
	    include ("iconlib/inventor.open.fti");
	} else {
	    include ("iconlib/inventor.closed.fti");
	}
    }