124 lines
3.6 KiB
C++
124 lines
3.6 KiB
C++
/****************************************************************************************
|
|
|
|
Copyright (C) 2015 Autodesk, Inc.
|
|
All rights reserved.
|
|
|
|
Use of this software is subject to the terms of the Autodesk license agreement
|
|
provided at the time of installation or download, or which otherwise accompanies
|
|
this software in either electronic or hard copy form.
|
|
|
|
****************************************************************************************/
|
|
|
|
//! \file fbxnodeattribute.h
|
|
#ifndef _FBXSDK_SCENE_GEOMETRY_NODE_ATTRIBUTE_H_
|
|
#define _FBXSDK_SCENE_GEOMETRY_NODE_ATTRIBUTE_H_
|
|
|
|
#include <fbxsdk/fbxsdk_def.h>
|
|
|
|
#include <fbxsdk/core/fbxobject.h>
|
|
|
|
#include <fbxsdk/fbxsdk_nsbegin.h>
|
|
|
|
class FbxNode;
|
|
|
|
/** \brief This class is the base class to all types of node attributes.
|
|
* \nosubgrouping
|
|
* A node attribute is the content of a node. A \c NULL node attribute is set
|
|
* by calling function FbxNode::SetNodeAttribute() with a \c NULL pointer.
|
|
*/
|
|
class FBXSDK_DLL FbxNodeAttribute : public FbxObject
|
|
{
|
|
FBXSDK_OBJECT_DECLARE(FbxNodeAttribute, FbxObject);
|
|
|
|
public:
|
|
//! Property Names
|
|
static const char* sColor;
|
|
|
|
//! Property Default Values
|
|
static const FbxDouble3 sDefaultColor;
|
|
|
|
/** This property handles the color.
|
|
*
|
|
* Default value is (0.8, 0.8, 0.8)
|
|
*/
|
|
FbxPropertyT<FbxDouble3> Color;
|
|
|
|
/** \enum EType Node attribute types.
|
|
* - \e eUnknown
|
|
* - \e eNull
|
|
* - \e eMarker
|
|
* - \e eSkeleton
|
|
* - \e eMesh
|
|
* - \e eNurbs
|
|
* - \e ePatch
|
|
* - \e eCamera
|
|
* - \e eCameraStereo,
|
|
* - \e eCameraSwitcher
|
|
* - \e eLight
|
|
* - \e eOpticalReference
|
|
* - \e eOpticalMarker
|
|
* - \e eNurbsCurve
|
|
* - \e eTrimNurbsSurface
|
|
* - \e eBoundary
|
|
* - \e eNurbsSurface
|
|
* - \e eShape
|
|
* - \e eLODGroup
|
|
* - \e eSubDiv
|
|
* - \e eCachedEffect
|
|
* - \e eLine
|
|
*/
|
|
enum EType
|
|
{
|
|
eUnknown,
|
|
eNull,
|
|
eMarker,
|
|
eSkeleton,
|
|
eMesh,
|
|
eNurbs,
|
|
ePatch,
|
|
eCamera,
|
|
eCameraStereo,
|
|
eCameraSwitcher,
|
|
eLight,
|
|
eOpticalReference,
|
|
eOpticalMarker,
|
|
eNurbsCurve,
|
|
eTrimNurbsSurface,
|
|
eBoundary,
|
|
eNurbsSurface,
|
|
eShape,
|
|
eLODGroup,
|
|
eSubDiv,
|
|
eCachedEffect,
|
|
eLine
|
|
};
|
|
|
|
/** Return the type of node attribute.
|
|
* This class is pure virtual.
|
|
*/
|
|
virtual FbxNodeAttribute::EType GetAttributeType() const;
|
|
|
|
/** Return the node count using this attribute.
|
|
* \return The count of nodes with this attribute set.
|
|
*/
|
|
int GetNodeCount() const;
|
|
|
|
/** Return the node this attribute is set to.
|
|
* \param pIndex The index of the node to retrieve
|
|
* \return Pointer to the node, or \c NULL if the current attribute is not set to a node.
|
|
*/
|
|
FbxNode* GetNode(int pIndex=0) const;
|
|
|
|
/*****************************************************************************************************************************
|
|
** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
|
|
*****************************************************************************************************************************/
|
|
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
|
protected:
|
|
void ConstructProperties(bool pForceSet) override;
|
|
#endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
|
|
};
|
|
|
|
#include <fbxsdk/fbxsdk_nsend.h>
|
|
|
|
#endif /* _FBXSDK_SCENE_GEOMETRY_NODE_ATTRIBUTE_H_ */
|