;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; 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")



#? *** nodes_shape

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

#? * sovertexshape
;;.TYPE CLASS
#? (==> <sovertexshape> getsf-vertexproperty)

#? * soasciitext
;;.TYPE CLASS
#? (==> <soasciitext> getmf-string)
#? (==> <soasciitext> getsf-spacing)
#? (==> <soasciitext> getsf-justification)
#? (==> <soasciitext> getmf-width)
#? (new soasciitext <flag>>

#? * socone
;;.TYPE CLASS
#? (==> <socone> getsf-parts)
#? (==> <socone> getsf-bottomradius)
#? (==> <socone> getsf-height)
#? (new socone <flag>>
#? (==> <socone> addpart <part>)
#? (==> <socone> removepart <part>)
#? (==> <socone> haspart <part>)

#? * socube
;;.TYPE CLASS
#? (==> <socube> getsf-width)
#? (==> <socube> getsf-height)
#? (==> <socube> getsf-depth)
#? (new socube <flag>>

#? * socylinder
;;.TYPE CLASS
#? (==> <socylinder> getsf-parts)
#? (==> <socylinder> getsf-radius)
#? (==> <socylinder> getsf-height)
#? (new socylinder <flag>>
#? (==> <socylinder> addpart <part>)
#? (==> <socylinder> removepart <part>)
#? (==> <socylinder> haspart <part>)

#? * soindexednurbscurve
;;.TYPE CLASS
#? (==> <soindexednurbscurve> getsf-numcontrolpoints)
#? (==> <soindexednurbscurve> getmf-coordindex)
#? (==> <soindexednurbscurve> getmf-knotvector)
#? (new soindexednurbscurve <flag>>

#? * soindexednurbssurface
;;.TYPE CLASS
#? (==> <soindexednurbssurface> getsf-numucontrolpoints)
#? (==> <soindexednurbssurface> getsf-numvcontrolpoints)
#? (==> <soindexednurbssurface> getmf-coordindex)
#? (==> <soindexednurbssurface> getmf-uknotvector)
#? (==> <soindexednurbssurface> getmf-vknotvector)
#? (==> <soindexednurbssurface> getsf-numscontrolpoints)
#? (==> <soindexednurbssurface> getsf-numtcontrolpoints)
#? (==> <soindexednurbssurface> getmf-texturecoordindex)
#? (==> <soindexednurbssurface> getmf-sknotvector)
#? (==> <soindexednurbssurface> getmf-tknotvector)
#? (new soindexednurbssurface <flag>>

#? * sonurbscurve
;;.TYPE CLASS
#? (==> <sonurbscurve> getsf-numcontrolpoints)
#? (==> <sonurbscurve> getmf-knotvector)
#? (new sonurbscurve <flag>>

#? * sonurbssurface
;;.TYPE CLASS
#? (==> <sonurbssurface> getsf-numucontrolpoints)
#? (==> <sonurbssurface> getsf-numvcontrolpoints)
#? (==> <sonurbssurface> getsf-numscontrolpoints)
#? (==> <sonurbssurface> getsf-numtcontrolpoints)
#? (==> <sonurbssurface> getmf-uknotvector)
#? (==> <sonurbssurface> getmf-vknotvector)
#? (==> <sonurbssurface> getmf-sknotvector)
#? (==> <sonurbssurface> getmf-tknotvector)
#? (new sonurbssurface <flag>>

#? * sosphere
;;.TYPE CLASS
#? (==> <sosphere> getsf-radius)
#? (new sosphere <flag>>

#? * sotext2
;;.TYPE CLASS
#? (==> <sotext2> getmf-string)
#? (==> <sotext2> getsf-spacing)
#? (==> <sotext2> getsf-justification)
#? (new sotext2 <flag>>

#? * sotext3
;;.TYPE CLASS
#? (==> <sotext3> getmf-string)
#? (==> <sotext3> getsf-spacing)
#? (==> <sotext3> getsf-parts)
#? (==> <sotext3> getsf-justification)
#? (new sotext3 <flag>>

#? * sononindexedshape
;;.TYPE CLASS
#? (==> <sononindexedshape> getsf-startindex)

#? * soindexedshape
;;.TYPE CLASS
#? (==> <soindexedshape> getmf-coordindex)
#? (==> <soindexedshape> getmf-materialindex)
#? (==> <soindexedshape> getmf-normalindex)
#? (==> <soindexedshape> getmf-texturecoordindex)

#? * sofaceset
;;.TYPE CLASS
#? (==> <sofaceset> getmf-numvertices)
#? (new sofaceset <flag>>

#? * soindexedfaceset
;;.TYPE CLASS
#? (new soindexedfaceset <flag>>

#? * soindexedlineset
;;.TYPE CLASS
#? (new soindexedlineset <flag>>

#? * soindexedtrianglestripset
;;.TYPE CLASS
#? (new soindexedtrianglestripset <flag>>

#? * solineset
;;.TYPE CLASS
#? (==> <solineset> getmf-numvertices)
#? (new solineset <flag>>

#? * sopointset
;;.TYPE CLASS
#? (==> <sopointset> getsf-numpoints)
#? (new sopointset <flag>>

#? * soquadmesh
;;.TYPE CLASS
#? (==> <soquadmesh> getsf-verticespercolumn)
#? (==> <soquadmesh> getsf-verticesperrow)
#? (new soquadmesh <flag>>

#? * sotrianglestripset
;;.TYPE CLASS
#? (==> <sotrianglestripset> getmf-numvertices)
#? (new sotrianglestripset <flag>>

#? * (|dummy_nodes_shape|)

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



;;**************************************************************
;;**********  nodes_shape
;;************************************************************

(libload "inventor/nodes_1")



;; class SoVertexShape : public SoShape
(defclass SoVertexShape SoShape)

(defmethod SoVertexShape  getsf_vertexProperty (  )
  
  (let* ((retobj (new SoSFNode t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoVertexShape *)$p)->vertexProperty);  #} 
    (setq :retobj:p retobjp)
    retobj))







;; class SoAsciiText : public SoShape    
(defclass SoAsciiText SoShape)

(defmethod SoAsciiText  getmf_string (  )
  
  (let* ((retobj (new SoMFString t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoAsciiText *)$p)->string) ;  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoAsciiText  getsf_spacing (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoAsciiText *)$p)->spacing);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoAsciiText  getsf_justification (  )
  
  (let* ((retobj (new SoSFEnum t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoAsciiText *)$p)->justification);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoAsciiText  getmf_width (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoAsciiText *)$p)->width);  #} 
    (setq :retobj:p retobjp)
    retobj))

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








;; class SoCone : public SoShape
(defclass SoCone SoShape)

(defmethod SoCone  getsf_parts (  )
  
  (let* ((retobj (new SoSFBitMask t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoCone *)$p)->parts);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoCone  getsf_bottomRadius (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoCone *)$p)->bottomRadius);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoCone  getsf_height (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoCone *)$p)->height);  #} 
    (setq :retobj:p retobjp)
    retobj))

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

(defmethod SoCone  addPart ( part)
  
  ((-int-) part)   ;; SoCone::Part
  #{ ((SoCone *)$p)->addPart((SoCone::Part)$part);  #} 
  ())

(defmethod SoCone  removePart ( part)
  
  ((-int-) part)   ;; SoCone::Part
  #{ ((SoCone *)$p)->removePart((SoCone::Part)$part);  #} 
  ())

(defmethod SoCone  hasPart ( part)
  
  ((-int-) part)   ;; SoCone::Part
  (int #{ ((SoCone *)$p)->hasPart((SoCone::Part)$part)  #} ))











;; class SoCube : public SoShape
(defclass SoCube SoShape)

(defmethod SoCube  getsf_width (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoCube *)$p)->width);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoCube  getsf_height (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoCube *)$p)->height);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoCube  getsf_depth (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoCube *)$p)->depth);  #} 
    (setq :retobj:p retobjp)
    retobj))

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








;; class SoCylinder : public SoShape
(defclass SoCylinder SoShape)

(defmethod SoCylinder  getsf_parts (  )
  
  (let* ((retobj (new SoSFBitMask t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoCylinder *)$p)->parts);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoCylinder  getsf_radius (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoCylinder *)$p)->radius);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoCylinder  getsf_height (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoCylinder *)$p)->height);  #} 
    (setq :retobj:p retobjp)
    retobj))

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

(defmethod SoCylinder  addPart ( part)
  
  ((-int-) part)   ;; SoCylinder::Part
  #{ ((SoCylinder *)$p)->addPart((SoCylinder::Part)$part);  #} 
  ())

(defmethod SoCylinder  removePart ( part)
  
  ((-int-) part)   ;; SoCylinder::Part
  #{ ((SoCylinder *)$p)->removePart((SoCylinder::Part)$part);  #} 
  ())

(defmethod SoCylinder  hasPart ( part)
  
  ((-int-) part)   ;; SoCylinder::Part
  (int #{ ((SoCylinder *)$p)->hasPart((SoCylinder::Part)$part)  #} ))







;; class SoIndexedNurbsCurve : public SoShape
(defclass SoIndexedNurbsCurve SoShape)

(defmethod SoIndexedNurbsCurve  getsf_numControlPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsCurve *)$p)->numControlPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsCurve  getmf_coordIndex (  )
  
  (let* ((retobj (new SoMFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsCurve *)$p)->coordIndex);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsCurve  getmf_knotVector (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsCurve *)$p)->knotVector);  #} 
    (setq :retobj:p retobjp)
    retobj))

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





;; class SoIndexedNurbsSurface : public SoShape
(defclass SoIndexedNurbsSurface SoShape)

(defmethod SoIndexedNurbsSurface  getsf_numUControlPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsSurface *)$p)->numUControlPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsSurface  getsf_numVControlPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsSurface *)$p)->numVControlPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsSurface  getmf_coordIndex (  )
  
  (let* ((retobj (new SoMFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsSurface *)$p)->coordIndex);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsSurface  getmf_uKnotVector (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsSurface *)$p)->uKnotVector);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsSurface  getmf_vKnotVector (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsSurface *)$p)->vKnotVector);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsSurface  getsf_numSControlPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsSurface *)$p)->numSControlPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsSurface  getsf_numTControlPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsSurface *)$p)->numTControlPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsSurface  getmf_textureCoordIndex (  )
  
  (let* ((retobj (new SoMFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsSurface *)$p)->textureCoordIndex);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsSurface  getmf_sKnotVector (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsSurface *)$p)->sKnotVector);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedNurbsSurface  getmf_tKnotVector (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedNurbsSurface *)$p)->tKnotVector);  #} 
    (setq :retobj:p retobjp)
    retobj))

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






;; class SoNurbsCurve : public SoShape
(defclass SoNurbsCurve SoShape)

(defmethod SoNurbsCurve  getsf_numControlPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNurbsCurve *)$p)->numControlPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoNurbsCurve  getmf_knotVector (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNurbsCurve *)$p)->knotVector);  #} 
    (setq :retobj:p retobjp)
    retobj))

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




;; class SoNurbsSurface : public SoShape
(defclass SoNurbsSurface SoShape)

(defmethod SoNurbsSurface  getsf_numUControlPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNurbsSurface *)$p)->numUControlPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoNurbsSurface  getsf_numVControlPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNurbsSurface *)$p)->numVControlPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoNurbsSurface  getsf_numSControlPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNurbsSurface *)$p)->numSControlPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoNurbsSurface  getsf_numTControlPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNurbsSurface *)$p)->numTControlPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoNurbsSurface  getmf_uKnotVector (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNurbsSurface *)$p)->uKnotVector);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoNurbsSurface  getmf_vKnotVector (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNurbsSurface *)$p)->vKnotVector);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoNurbsSurface  getmf_sKnotVector (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNurbsSurface *)$p)->sKnotVector);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoNurbsSurface  getmf_tKnotVector (  )
  
  (let* ((retobj (new SoMFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNurbsSurface *)$p)->tKnotVector);  #} 
    (setq :retobj:p retobjp)
    retobj))

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





;; class SoSphere : public SoShape
(defclass SoSphere SoShape)

(defmethod SoSphere  getsf_radius (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoSphere *)$p)->radius);  #} 
    (setq :retobj:p retobjp)
    retobj))

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










;; class SoText2 : public SoShape
(defclass SoText2 SoShape)

(defmethod SoText2  getmf_string (  )
  
  (let* ((retobj (new SoMFString t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoText2 *)$p)->string);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoText2  getsf_spacing (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoText2 *)$p)->spacing);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoText2  getsf_justification (  )
  
  (let* ((retobj (new SoSFEnum t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoText2 *)$p)->justification);  #} 
    (setq :retobj:p retobjp)
    retobj))

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







;; class SoText3 : public SoShape
(defclass SoText3 SoShape)

(defmethod SoText3  getmf_string (  )
  
  (let* ((retobj (new SoMFString t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoText3 *)$p)->string);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoText3  getsf_spacing (  )
  
  (let* ((retobj (new SoSFFloat t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoText3 *)$p)->spacing);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoText3  getsf_parts (  )
  
  (let* ((retobj (new SoSFBitMask t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoText3 *)$p)->parts);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoText3  getsf_justification (  )
  
  (let* ((retobj (new SoSFEnum t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoText3 *)$p)->justification);  #} 
    (setq :retobj:p retobjp)
    retobj))

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











;; class SoNonIndexedShape : public SoVertexShape
(defclass SoNonIndexedShape SoVertexShape)

(defmethod SoNonIndexedShape  getsf_startIndex (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoNonIndexedShape *)$p)->startIndex);  #} 
    (setq :retobj:p retobjp)
    retobj))



;; class SoIndexedShape : public SoVertexShape
(defclass SoIndexedShape SoVertexShape)

(defmethod SoIndexedShape  getmf_coordIndex (  )
  
  (let* ((retobj (new SoMFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedShape *)$p)->coordIndex);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedShape  getmf_materialIndex (  )
  
  (let* ((retobj (new SoMFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedShape *)$p)->materialIndex);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedShape  getmf_normalIndex (  )
  
  (let* ((retobj (new SoMFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedShape *)$p)->normalIndex);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoIndexedShape  getmf_textureCoordIndex (  )
  
  (let* ((retobj (new SoMFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoIndexedShape *)$p)->textureCoordIndex);  #} 
    (setq :retobj:p retobjp)
    retobj))



;; class SoFaceSet : public SoNonIndexedShape
(defclass SoFaceSet SoNonIndexedShape)

(defmethod SoFaceSet  getmf_numVertices (  )
  
  (let* ((retobj (new SoMFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoFaceSet *)$p)->numVertices);  #} 
    (setq :retobj:p retobjp)
    retobj))

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







;; class SoIndexedFaceSet : public SoIndexedShape
(defclass SoIndexedFaceSet SoIndexedShape)

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



;; class SoIndexedLineSet : public SoIndexedShape
(defclass SoIndexedLineSet SoIndexedShape)

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







;; class SoIndexedTriangleStripSet : public SoIndexedShape
(defclass SoIndexedTriangleStripSet SoIndexedShape)

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






;; class SoLineSet : public SoNonIndexedShape
(defclass SoLineSet SoNonIndexedShape)

(defmethod SoLineSet  getmf_numVertices (  )
  
  (let* ((retobj (new SoMFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoLineSet *)$p)->numVertices);  #} 
    (setq :retobj:p retobjp)
    retobj))

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







;; class SoPointSet : public SoNonIndexedShape
(defclass SoPointSet SoNonIndexedShape)

(defmethod SoPointSet  getsf_numPoints (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoPointSet *)$p)->numPoints);  #} 
    (setq :retobj:p retobjp)
    retobj))

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




;; class SoQuadMesh : public SoNonIndexedShape
(defclass SoQuadMesh SoNonIndexedShape)

(defmethod SoQuadMesh  getsf_verticesPerColumn (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoQuadMesh *)$p)->verticesPerColumn);  #} 
    (setq :retobj:p retobjp)
    retobj))

(defmethod SoQuadMesh  getsf_verticesPerRow (  )
  
  (let* ((retobj (new SoSFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoQuadMesh *)$p)->verticesPerRow);  #} 
    (setq :retobj:p retobjp)
    retobj))

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





;; class SoTriangleStripSet : public SoNonIndexedShape
(defclass SoTriangleStripSet SoNonIndexedShape)

(defmethod SoTriangleStripSet  getmf_numVertices (  )
  
  (let* ((retobj (new SoMFInt32 t))
	 (retobjp :retobj:p))
    #{ $retobjp = &(((SoTriangleStripSet *)$p)->numVertices);  #} 
    (setq :retobj:p retobjp)
    retobj))

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

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

(dhc-make-with-c++ () () 
  |dummy_nodes_shape|
  (sovertexshape  getsf-vertexproperty)
  (soasciitext  soasciitext  getmf-width  getsf-justification  getsf-spacing  getmf-string)
  (socone  haspart  removepart  addpart  socone  getsf-height  getsf-bottomradius  getsf-parts)
  (socube  socube  getsf-depth  getsf-height  getsf-width)
  (socylinder  haspart  removepart  addpart  socylinder  getsf-height  getsf-radius  getsf-parts)
  (soindexednurbscurve  soindexednurbscurve  getmf-knotvector  getmf-coordindex  getsf-numcontrolpoints)
  (soindexednurbssurface  soindexednurbssurface  getmf-tknotvector  getmf-sknotvector  getmf-texturecoordindex  getsf-numtcontrolpoints  getsf-numscontrolpoints  getmf-vknotvector  getmf-uknotvector  getmf-coordindex  getsf-numvcontrolpoints  getsf-numucontrolpoints)
  (sonurbscurve  sonurbscurve  getmf-knotvector  getsf-numcontrolpoints)
  (sonurbssurface  sonurbssurface  getmf-tknotvector  getmf-sknotvector  getmf-vknotvector  getmf-uknotvector  getsf-numtcontrolpoints  getsf-numscontrolpoints  getsf-numvcontrolpoints  getsf-numucontrolpoints)
  (sosphere  sosphere  getsf-radius)
  (sotext2  sotext2  getsf-justification  getsf-spacing  getmf-string)
  (sotext3  sotext3  getsf-justification  getsf-parts  getsf-spacing  getmf-string)
  (sononindexedshape  getsf-startindex)
  (soindexedshape  getmf-texturecoordindex  getmf-normalindex  getmf-materialindex  getmf-coordindex)
  (sofaceset  sofaceset  getmf-numvertices)
  (soindexedfaceset  soindexedfaceset)
  (soindexedlineset  soindexedlineset)
  (soindexedtrianglestripset  soindexedtrianglestripset)
  (solineset  solineset  getmf-numvertices)
  (sopointset  sopointset  getsf-numpoints)
  (soquadmesh  soquadmesh  getsf-verticesperrow  getsf-verticespercolumn)
  (sotrianglestripset  sotrianglestripset  getmf-numvertices)
)
