Inventor/VRMLnodes/SoVRMLSubInterpolator.h File Reference

#include <Inventor/VRMLnodes/SoVRMLInterpolator.h>
#include <Inventor/VRMLnodes/SoVRMLInterpOutputData.h>
#include <Inventor/errors/SoDebugError.h>
#include <Inventor/fields/SoFieldData.h>

Go to the source code of this file.

Defines

#define SO__INTERPOLATOR_CHECK_INIT(className)   { }
#define SO__INTERPOLATOR_CHECK_CONSTRUCT(where)   { }
#define SO_INTERPOLATOR_ABSTRACT_HEADER(className)
#define SO_INTERPOLATOR_HEADER(className)
#define SO__INTERPOLATOR_ABSTRACT_VARS(className)
#define SO__INTERPOLATOR_VARS(className)   SO__INTERPOLATOR_ABSTRACT_VARS(className)
#define SO__INTERPOLATOR_ABSTRACT_METHODS(className)
#define SO__INTERPOLATOR_METHODS(className)
#define SO_INTERPOLATOR_SOURCE(className)
#define SO_INTERPOLATOR_ABSTRACT_SOURCE(className)
#define SO_INTERPOLATOR_INIT_CLASS_CHECK_PARENT(className, parentClass)
#define SO__INTERPOLATOR_INIT_CLASS_INTERNAL(className, classPrintName, parentClass)
#define SO__INTERPOLATOR_INIT_CLASS(className, classPrintName, parentClass)   SO__INTERPOLATOR_INIT_CLASS_INTERNAL(className, classPrintName, parentClass)
#define SO__INTERPOLATOR_INIT_ABSTRACT_CLASS_INTERNAL(className, classPrintName, parentClass)
#define SO__INTERPOLATOR_INIT_ABSTRACT_CLASS(className, classPrintName, parent)   SO__INTERPOLATOR_INIT_ABSTRACT_CLASS_INTERNAL(className,classPrintName,parent);
#define SO_INTERPOLATOR_INIT_CLASS_INTERNAL(className, parentClass, parentPrintClass)
#define SO_INTERPOLATOR_INIT_CLASS(className, parentClass, parentPrintClass)   SO_INTERPOLATOR_INIT_CLASS_INTERNAL(className,parentClass,parentPrintClass);
#define SO_INTERPOLATOR_INIT_ABSTRACT_CLASS_INTERNAL(className, parentClass, parentPrintClass)
#define SO_INTERPOLATOR_INIT_ABSTRACT_CLASS(className, parentClass, parentPrintClass)   SO_INTERPOLATOR_INIT_ABSTRACT_CLASS_INTERNAL(className,parentClass,parentPrintClass);
#define SO_INTERPOLATOR_EXIT_CLASS(className)
#define SO_INTERPOLATOR_CONSTRUCTOR(className)
#define SO_INTERPOLATOR_IS_FIRST_INSTANCE()   (firstInstance == TRUE)
#define SO_INTERPOLATOR_ADD_INPUT(inputName, defValue)
#define SO_INTERPOLATOR_ADD_EXPOSEDINPUT(inputName, defValue)
#define SO_INTERPOLATOR_ADD_EVENTIN(inputName)
#define SO_INTERPOLATOR_ADD_HIDDEN_FIELD(inputName, defValue)
#define SO_INTERPOLATOR_ADD_OUTPUT(outputName, type)
#define SO_INTERPOLATOR_DEFINE_ENUM_VALUE(enumType, enumValue)
#define SO_INTERPOLATOR_OUTPUT(outputName, type, code)

Define Documentation

#define SO__INTERPOLATOR_ABSTRACT_METHODS ( className   ) 
#define SO__INTERPOLATOR_ABSTRACT_VARS ( className   ) 
Value:
SoType                        className::classTypeId;                     \
    SbBool                        className::isBuiltIn = FALSE;               \
    const SoFieldData           **className::parentInputData = NULL;          \
    const SoVRMLInterpOutputData **className::parentOutputData = NULL;        \
    SoFieldData *                 className::inputData = NULL;                \
    SoVRMLInterpOutputData *      className::outputData = NULL;               \
    SbBool                        className::firstInstance=TRUE
#define SO__INTERPOLATOR_CHECK_CONSTRUCT ( where   )     { }
#define SO__INTERPOLATOR_CHECK_INIT ( className   )     { }
#define SO__INTERPOLATOR_INIT_ABSTRACT_CLASS ( className,
classPrintName,
parent   )     SO__INTERPOLATOR_INIT_ABSTRACT_CLASS_INTERNAL(className,classPrintName,parent);
#define SO__INTERPOLATOR_INIT_ABSTRACT_CLASS_INTERNAL ( className,
classPrintName,
parentClass   ) 
Value:
SO_INTERPOLATOR_INIT_CLASS_CHECK_PARENT(className, parentClass);    \
  classTypeId = SoType::createType(parentClass::getClassTypeId(),     \
                                   classPrintName);                   \
  parentInputData = parentClass::getInputDataPtr();                   \
  parentOutputData = parentClass::getOutputDataPtr()
#define SO__INTERPOLATOR_INIT_CLASS ( className,
classPrintName,
parentClass   )     SO__INTERPOLATOR_INIT_CLASS_INTERNAL(className, classPrintName, parentClass)
#define SO__INTERPOLATOR_INIT_CLASS_INTERNAL ( className,
classPrintName,
parentClass   ) 
Value:
SO_INTERPOLATOR_INIT_CLASS_CHECK_PARENT(className, parentClass);    \
  classTypeId = SoType::createType(parentClass::getClassTypeId(),     \
                       classPrintName,                                \
                       &className::createInstance,                    \
                       (short)SoNode::getNextActionMethodIndex());    \
  parentInputData = parentClass::getInputDataPtr();                   \
  parentOutputData = parentClass::getOutputDataPtr()
#define SO__INTERPOLATOR_METHODS ( className   ) 
Value:
\
    SO__INTERPOLATOR_ABSTRACT_METHODS(className)                              \
                                                                              \
    void *                                                                    \
    className::createInstance(SoType*)                                        \
    {                                                                         \
        return (void *)(new className);                                       \
    }
#define SO__INTERPOLATOR_VARS ( className   )     SO__INTERPOLATOR_ABSTRACT_VARS(className)
#define SO_INTERPOLATOR_ABSTRACT_HEADER ( className   ) 
Value:
public:                                                                     \
  static SoType getClassTypeId() ;                    \
    virtual SoType      getTypeId() const; /* Returns type id   */            \
  public:                                                                     \
    virtual const SoFieldData *         getFieldData()  const;                \
    virtual const SoVRMLInterpOutputData *      getOutputData() const;        \
  private:                                                          \
    virtual SbBool      getIsBuiltIn() const ;                                \
  private:                                                                  \
    static const SoFieldData **         getInputDataPtr() ;                   \
    static const SoVRMLInterpOutputData **      getOutputDataPtr();           \
  private:                                                                    \
    static SoType      classTypeId;    /* Type id      */    \
    static SbBool      isBuiltIn;                            \
    static SbBool      firstInstance;  /* True for first ctor call */        \
    static SoFieldData *inputData;     /* Info on input fields */            \
    static SoVRMLInterpOutputData      *outputData;            /* Info on outputs */ \
    static const SoFieldData   **parentInputData;      /* parent's fields */ \
    static const SoVRMLInterpOutputData **parentOutputData
#define SO_INTERPOLATOR_ABSTRACT_SOURCE ( className   ) 
#define SO_INTERPOLATOR_ADD_EVENTIN ( inputName   ) 
Value:
{ \
  SO__INTERPOLATOR_CHECK_CONSTRUCT(__FILE__); \
  if (firstInstance) \
    inputData->addField(this, SO__QUOTE(inputName), &this->inputName); \
  this->inputName.setContainer(this); \
  this->inputName.setFieldType(SoField::EVENTIN_FIELD); \
}
#define SO_INTERPOLATOR_ADD_EXPOSEDINPUT ( inputName,
defValue   ) 
Value:
{ \
  SO__INTERPOLATOR_CHECK_CONSTRUCT(__FILE__); \
  if (firstInstance) \
    inputData->addField(this, SO__QUOTE(inputName), &this->inputName); \
  this->inputName.setValue defValue; \
  this->inputName.setContainer(this); \
  this->inputName.setFieldType(SoField::EXPOSED_FIELD); \
}
#define SO_INTERPOLATOR_ADD_HIDDEN_FIELD ( inputName,
defValue   ) 
Value:
{ \
  SO__INTERPOLATOR_CHECK_CONSTRUCT(__FILE__);  \
  if (firstInstance) \
    inputData->addField(this, SO__QUOTE(inputName), &this->inputName); \
  this->inputName.setValue defValue; \
  this->inputName.setContainer(this); \
  this->inputName.setFieldType(SoField::INTERNAL_FIELD); \
}
#define SO_INTERPOLATOR_ADD_INPUT ( inputName,
defValue   ) 
Value:
{ \
  SO__INTERPOLATOR_CHECK_CONSTRUCT(__FILE__);                         \
  if (firstInstance)                                                  \
    inputData->addField(this, SO__QUOTE(inputName),                   \
                        &this->inputName);                            \
  this->inputName.setValue defValue;                                  \
  this->inputName.setContainer(this);                                 \
}
#define SO_INTERPOLATOR_ADD_OUTPUT ( outputName,
type   ) 
Value:
{ \
  SO__INTERPOLATOR_CHECK_CONSTRUCT(__FILE__); \
  if (firstInstance) { \
    outputData->addOutput(this, SO__QUOTE(outputName), \
                          &this->outputName, \
                          type::getClassTypeId()); \
  } \
  this->outputName.setContainer(this); \
}
#define SO_INTERPOLATOR_CONSTRUCTOR ( className   ) 
Value:
{ \
  SO__INTERPOLATOR_CHECK_INIT(className);                                     \
  if (inputData == NULL) {                                            \
    inputData = new SoFieldData(parentInputData ?                     \
                                *parentInputData : NULL);             \
    outputData = new SoVRMLInterpOutputData(parentOutputData ?        \
                                            *parentOutputData : NULL);    \
  }                                                                   \
  else {                                                                      \
    firstInstance = FALSE;                                            \
  }                                                                   \
  isBuiltIn = FALSE;                                                  \
}
#define SO_INTERPOLATOR_DEFINE_ENUM_VALUE ( enumType,
enumValue   ) 
Value:
{ \
  SO__INTERPOLATOR_CHECK_CONSTRUCT(__FILE__);                         \
  if (firstInstance)                                                  \
    inputData->addEnumValue(SO__QUOTE(enumType),                      \
                            SO__QUOTE(enumValue), enumValue);         \
}
#define SO_INTERPOLATOR_EXIT_CLASS ( className   ) 
Value:
SoType::removeType(classTypeId.getName());   \
  classTypeId = SoType::badType();             \
  if (inputData) {                             \
    delete inputData;                          \
    inputData = NULL;                          \
  }                                            \
  if (outputData) {                            \
    delete outputData;                         \
    outputData = NULL;                         \
  }                                            \
  parentInputData = NULL;                      \
  parentOutputData = NULL;                     \
  firstInstance = TRUE
#define SO_INTERPOLATOR_HEADER ( className   ) 
Value:
\
    SO_INTERPOLATOR_ABSTRACT_HEADER(className);                               \
                                                                              \
  private:                                                                    \
    static void *createInstance(SoType* dynamicType = NULL)
#define SO_INTERPOLATOR_INIT_ABSTRACT_CLASS ( className,
parentClass,
parentPrintClass   )     SO_INTERPOLATOR_INIT_ABSTRACT_CLASS_INTERNAL(className,parentClass,parentPrintClass);
#define SO_INTERPOLATOR_INIT_ABSTRACT_CLASS_INTERNAL ( className,
parentClass,
parentPrintClass   ) 
Value:
SO_INTERPOLATOR_INIT_CLASS_CHECK_PARENT(className, parentClass);                                                                 \
  classTypeId = SoType::createType(SoType::fromName(parentPrintClass), SO__QUOTE(className)); \
  parentInputData = parentClass::getInputDataPtr(); \
  parentOutputData = parentClass::getOutputDataPtr()
#define SO_INTERPOLATOR_INIT_CLASS ( className,
parentClass,
parentPrintClass   )     SO_INTERPOLATOR_INIT_CLASS_INTERNAL(className,parentClass,parentPrintClass);
#define SO_INTERPOLATOR_INIT_CLASS_CHECK_PARENT ( className,
parentClass   ) 
#define SO_INTERPOLATOR_INIT_CLASS_INTERNAL ( className,
parentClass,
parentPrintClass   ) 
Value:
SO_INTERPOLATOR_INIT_CLASS_CHECK_PARENT(className, parentClass);     \
  classTypeId = SoType::createType(SoType::fromName(parentPrintClass), \
                       SO__QUOTE(className),                           \
                       &className::createInstance);                    \
  parentInputData = parentClass::getInputDataPtr();                    \
  parentOutputData = parentClass::getOutputDataPtr()
 
#define SO_INTERPOLATOR_IS_FIRST_INSTANCE (  )     (firstInstance == TRUE)
#define SO_INTERPOLATOR_OUTPUT ( outputName,
type,
code   ) 
Value:
{ \
  if (outputName.isEnabled()) {                                       \
    for (int _eng_out_i = 0;                                          \
         _eng_out_i < outputName.getNumConnections();                 \
         _eng_out_i++) {                                              \
      type *_eng_out_temp = (type *) outputName[_eng_out_i];          \
      if (!_eng_out_temp->isReadOnly()) {                             \
        _eng_out_temp->code;                                  \
      }                                                       \
    }                                                                 \
  }                                                                   \
}
#define SO_INTERPOLATOR_SOURCE ( className   ) 

Open Inventor Toolkit reference manual, generated on 12 Feb 2024
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/