;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; LUSH Lisp Universal Shell
;;;   Copyright (C) 2002 Leon Bottou, Yann Le Cun, AT&T Corp, NECI.
;;; Includes parts of TL3:
;;;   Copyright (C) 1987-1999 Leon Bottou and Neuristique.
;;; Includes selected parts of SN3.2:
;;;   Copyright (C) 1991-2001 AT&T Corp.
;;;
;;; Includes information derived from the GSL (Gnu Scientific Library)
;;;   header files which are copyrighted and distributed under the GPL
;;;   by their respective authors.
;;;
;;; This program is free software; you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 2 of the License, or
;;; (at your option) any later version.
;;;
;;; This program is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with this program; if not, write to the Free Software
;;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(libload "inventor/inventor-config")



#? *** details

;; dummy function that adds inventor header files in C file
(eval `(de |dummy_details| () ,inventor-cpheader-cmd ()))

#? * sodetail
;;.TYPE CLASS
#? (==> <sodetail> -destructor)
#? (==> <sodetail> isoftype <type>)

#? * soconedetail
;;.TYPE CLASS
#? (new soconedetail <flag>>
#? (==> <soconedetail> -destructor)
#? (==> <soconedetail> getpart)
#? (==> <soconedetail> copy)

#? * socubedetail
;;.TYPE CLASS
#? (new socubedetail <flag>>
#? (==> <socubedetail> -destructor)
#? (==> <socubedetail> getpart)
#? (==> <socubedetail> copy)

#? * socylinderdetail
;;.TYPE CLASS
#? (new socylinderdetail <flag>>
#? (==> <socylinderdetail> -destructor)
#? (==> <socylinderdetail> getpart)
#? (==> <socylinderdetail> copy)

#? * sofacedetail
;;.TYPE CLASS
#? (new sofacedetail <flag>>
#? (==> <sofacedetail> -destructor)
#? (==> <sofacedetail> getnumpoints)
#? (==> <sofacedetail> getpoint <i>)
#? (==> <sofacedetail> getfaceindex)
#? (==> <sofacedetail> getpartindex)
#? (==> <sofacedetail> copy)

#? * solinedetail
;;.TYPE CLASS
#? (new solinedetail <flag>>
#? (==> <solinedetail> -destructor)
#? (==> <solinedetail> getpoint0)
#? (==> <solinedetail> getpoint1)
#? (==> <solinedetail> getlineindex)
#? (==> <solinedetail> getpartindex)
#? (==> <solinedetail> copy)

#? * sopointdetail
;;.TYPE CLASS
#? (new sopointdetail <flag>>
#? (==> <sopointdetail> -destructor)
#? (==> <sopointdetail> getcoordinateindex)
#? (==> <sopointdetail> getmaterialindex)
#? (==> <sopointdetail> getnormalindex)
#? (==> <sopointdetail> gettexturecoordindex)
#? (==> <sopointdetail> copy)

#? * sotextdetail
;;.TYPE CLASS
#? (new sotextdetail <flag>>
#? (==> <sotextdetail> -destructor)
#? (==> <sotextdetail> getstringindex)
#? (==> <sotextdetail> getcharacterindex)
#? (==> <sotextdetail> getpart)
#? (==> <sotextdetail> copy)

#? * sonodekitdetail
;;.TYPE CLASS
#? (new sonodekitdetail <flag>>
#? (==> <sonodekitdetail> -destructor)
#? (==> <sonodekitdetail> getnodekit)
#? (==> <sonodekitdetail> getpart)
#? (==> <sonodekitdetail> getpartname)
#? (==> <sonodekitdetail> copy)

#? * (|dummy_details|)

;; ********************************************************


;;*****************************************************************
;;***********  details 
;;*****************************************************************
(libload "inventor/sotype")



;; class SoDetail : public InventorObject  **abstract**
(defclass SoDetail InventorObject)

(defmethod SoDetail -destructor (  )
  
  #{   if($shell_flag == false ) {
             delete  ((SoDetail *)$p);
             $p = NULL;
             $shell_flag = true;
       }
  #} 
  ())

(defmethod SoDetail  isOfType ( type)
  
  ((-gptr- "SoType *") type)    ;; object -> gptr
  (int #{ ((SoDetail *)$p)->isOfType(*$type)  #} ))



;; class SoConeDetail : public SoDetail
(defclass SoConeDetail SoDetail)

(defmethod SoConeDetail  SoConeDetail ( flag  )
  ((-bool-) flag)
  
  #{  if($flag == false ) {
            $p = new  SoConeDetail;
            $shell_flag = false;
      }
      else
            $shell_flag = true;
  #} 
  ())

(defmethod SoConeDetail -destructor (  )
  
  #{   if($shell_flag == false ) {
             delete  ((SoConeDetail *)$p);
             $p = NULL;
             $shell_flag = true;
       }
  #} 
  ())

(defmethod SoConeDetail  getPart (  )
  
  (int #{ ((SoConeDetail *)$p)->getPart()  #} ))

(defmethod SoConeDetail  copy (  )
  
  (gptr #{ ((SoConeDetail *)$p)->copy()  #} ))    ;; SoDetail *  -> gptr





;; class SoCubeDetail : public SoDetail
(defclass SoCubeDetail SoDetail)

(defmethod SoCubeDetail  SoCubeDetail ( flag  )
  ((-bool-) flag)
  
  #{  if($flag == false ) {
            $p = new  SoCubeDetail;
            $shell_flag = false;
      }
      else
            $shell_flag = true;
  #} 
  ())

(defmethod SoCubeDetail -destructor (  )
  
  #{   if($shell_flag == false ) {
             delete  ((SoCubeDetail *)$p);
             $p = NULL;
             $shell_flag = true;
       }
  #} 
  ())

(defmethod SoCubeDetail  getPart (  )
  
  (int #{ ((SoCubeDetail *)$p)->getPart()  #} ))

(defmethod SoCubeDetail  copy (  )
  
  (gptr #{ ((SoCubeDetail *)$p)->copy()  #} ))    ;; SoDetail *  -> gptr




;; class SoCylinderDetail : public SoDetail
(defclass SoCylinderDetail SoDetail)

(defmethod SoCylinderDetail  SoCylinderDetail ( flag  )
  ((-bool-) flag)
  
  #{  if($flag == false ) {
            $p = new  SoCylinderDetail;
            $shell_flag = false;
      }
      else
            $shell_flag = true;
  #} 
  ())

(defmethod SoCylinderDetail -destructor (  )
  
  #{   if($shell_flag == false ) {
             delete  ((SoCylinderDetail *)$p);
             $p = NULL;
             $shell_flag = true;
       }
  #} 
  ())

(defmethod SoCylinderDetail  getPart (  )
  
  (int #{ ((SoCylinderDetail *)$p)->getPart()  #} ))

(defmethod SoCylinderDetail  copy (  )
  
  (gptr #{ ((SoCylinderDetail *)$p)->copy()  #} ))    ;; SoDetail *  -> gptr




;; class SoFaceDetail : public SoDetail
(defclass SoFaceDetail SoDetail)

(defmethod SoFaceDetail  SoFaceDetail ( flag  )
  ((-bool-) flag)
  
  #{  if($flag == false ) {
            $p = new  SoFaceDetail;
            $shell_flag = false;
      }
      else
            $shell_flag = true;
  #} 
  ())

(defmethod SoFaceDetail -destructor (  )
  
  #{   if($shell_flag == false ) {
             delete  ((SoFaceDetail *)$p);
             $p = NULL;
             $shell_flag = true;
       }
  #} 
  ())

(defmethod SoFaceDetail  getNumPoints (  )
  
  (int #{ ((SoFaceDetail *)$p)->getNumPoints()  #} ))  ;; int32_t -> int

(defmethod SoFaceDetail  getPoint ( i)
  
  ((-int-) i)
  (gptr #{ ((SoFaceDetail *)$p)->getPoint($i)  #} ))    ;; const SoPointDetail *  -> gptr

(defmethod SoFaceDetail  getFaceIndex (  )
  
  (int #{ ((SoFaceDetail *)$p)->getFaceIndex()  #} ))  ;; int32_t -> int

(defmethod SoFaceDetail  getPartIndex (  )
  
  (int #{ ((SoFaceDetail *)$p)->getPartIndex()  #} ))  ;; int32_t -> int

(defmethod SoFaceDetail  copy (  )
  
  (gptr #{ ((SoFaceDetail *)$p)->copy()  #} ))    ;; SoDetail *  -> gptr




;; class SoLineDetail : public SoDetail
(defclass SoLineDetail SoDetail)

(defmethod SoLineDetail  SoLineDetail ( flag  )
  ((-bool-) flag)
  
  #{  if($flag == false ) {
            $p = new  SoLineDetail;
            $shell_flag = false;
      }
      else
            $shell_flag = true;
  #} 
  ())

(defmethod SoLineDetail -destructor (  )
  
  #{   if($shell_flag == false ) {
             delete  ((SoLineDetail *)$p);
             $p = NULL;
             $shell_flag = true;
       }
  #} 
  ())

(defmethod SoLineDetail  getPoint0 (  )
  
  (gptr #{ ((SoLineDetail *)$p)->getPoint0()  #} ))    ;; const SoPointDetail *  -> gptr

(defmethod SoLineDetail  getPoint1 (  )
  
  (gptr #{ ((SoLineDetail *)$p)->getPoint1()  #} ))    ;; const SoPointDetail *  -> gptr

(defmethod SoLineDetail  getLineIndex (  )
  
  (int #{ ((SoLineDetail *)$p)->getLineIndex()  #} ))  ;; int32_t -> int

(defmethod SoLineDetail  getPartIndex (  )
  
  (int #{ ((SoLineDetail *)$p)->getPartIndex()  #} ))  ;; int32_t -> int

(defmethod SoLineDetail  copy (  )
  
  (gptr #{ ((SoLineDetail *)$p)->copy()  #} ))    ;; SoDetail *  -> gptr




;; class SoPointDetail : public SoDetail
(defclass SoPointDetail SoDetail)

(defmethod SoPointDetail  SoPointDetail ( flag  )
  ((-bool-) flag)
  
  #{  if($flag == false ) {
            $p = new  SoPointDetail;
            $shell_flag = false;
      }
      else
            $shell_flag = true;
  #} 
  ())

(defmethod SoPointDetail -destructor (  )
  
  #{   if($shell_flag == false ) {
             delete  ((SoPointDetail *)$p);
             $p = NULL;
             $shell_flag = true;
       }
  #} 
  ())

(defmethod SoPointDetail  getCoordinateIndex (  )
  
  (int #{ ((SoPointDetail *)$p)->getCoordinateIndex()  #} ))  ;; int32_t -> int

(defmethod SoPointDetail  getMaterialIndex (  )
  
  (int #{ ((SoPointDetail *)$p)->getMaterialIndex()  #} ))  ;; int32_t -> int

(defmethod SoPointDetail  getNormalIndex (  )
  
  (int #{ ((SoPointDetail *)$p)->getNormalIndex()  #} ))  ;; int32_t -> int

(defmethod SoPointDetail  getTextureCoordIndex (  )
  
  (int #{ ((SoPointDetail *)$p)->getTextureCoordIndex()  #} ))  ;; int32_t -> int

(defmethod SoPointDetail  copy (  )
  
  (gptr #{ ((SoPointDetail *)$p)->copy()  #} ))    ;; SoDetail *  -> gptr




;; class SoTextDetail : public SoDetail
(defclass SoTextDetail SoDetail)

(defmethod SoTextDetail  SoTextDetail ( flag  )
  ((-bool-) flag)
  
  #{  if($flag == false ) {
            $p = new  SoTextDetail;
            $shell_flag = false;
      }
      else
            $shell_flag = true;
  #} 
  ())

(defmethod SoTextDetail -destructor (  )
  
  #{   if($shell_flag == false ) {
             delete  ((SoTextDetail *)$p);
             $p = NULL;
             $shell_flag = true;
       }
  #} 
  ())

(defmethod SoTextDetail  getStringIndex (  )
  
  (int #{ ((SoTextDetail *)$p)->getStringIndex()  #} ))  ;; int32_t -> int

(defmethod SoTextDetail  getCharacterIndex (  )
  
  (int #{ ((SoTextDetail *)$p)->getCharacterIndex()  #} ))  ;; int32_t -> int

(defmethod SoTextDetail  getPart (  )
  
  (int #{ ((SoTextDetail *)$p)->getPart()  #} ))   ;; SoText3::Part

(defmethod SoTextDetail  copy (  )
  
  (gptr #{ ((SoTextDetail *)$p)->copy()  #} ))    ;; SoDetail *  -> gptr





;; class SoNodeKitDetail : public SoDetail
(defclass SoNodeKitDetail SoDetail)

(defmethod SoNodeKitDetail  SoNodeKitDetail ( flag  )
  ((-bool-) flag)
  
  #{  if($flag == false ) {
            $p = new  SoNodeKitDetail;
            $shell_flag = false;
      }
      else
            $shell_flag = true;
  #} 
  ())

(defmethod SoNodeKitDetail -destructor (  )
  
  #{   if($shell_flag == false ) {
             delete  ((SoNodeKitDetail *)$p);
             $p = NULL;
             $shell_flag = true;
       }
  #} 
  ())

(defmethod SoNodeKitDetail  getNodeKit (  )
  
  (gptr #{ ((SoNodeKitDetail *)$p)->getNodeKit()  #} ))    ;; SoBaseKit *  -> gptr

(defmethod SoNodeKitDetail  getPart (  )
  
  (gptr #{ ((SoNodeKitDetail *)$p)->getPart()  #} ))    ;; SoNode *  -> gptr

(defmethod SoNodeKitDetail  getPartName (  )
  
  (gptr #{ &(((SoNodeKitDetail *)$p)->getPartName())  #} ))  ;; const SbName & -> gptr

(defmethod SoNodeKitDetail  copy (  )
  
  (gptr #{ ((SoNodeKitDetail *)$p)->copy()  #} ))    ;; SoDetail *  -> gptr




()

;; ********************************************************

(dhc-make-with-c++ () () 
  |dummy_details|
  (sodetail  isoftype  -destructor)
  (soconedetail  copy  getpart  -destructor  soconedetail)
  (socubedetail  copy  getpart  -destructor  socubedetail)
  (socylinderdetail  copy  getpart  -destructor  socylinderdetail)
  (sofacedetail  copy  getpartindex  getfaceindex  getpoint  getnumpoints  -destructor  sofacedetail)
  (solinedetail  copy  getpartindex  getlineindex  getpoint1  getpoint0  -destructor  solinedetail)
  (sopointdetail  copy  gettexturecoordindex  getnormalindex  getmaterialindex  getcoordinateindex  -destructor  sopointdetail)
  (sotextdetail  copy  getpart  getcharacterindex  getstringindex  -destructor  sotextdetail)
  (sonodekitdetail  copy  getpartname  getpart  getnodekit  -destructor  sonodekitdetail)
)
