#include <Primitive.h>

Public Member Functions | |
| Primitive () | |
| virtual | ~Primitive () |
| IE_CORE_DECLAREABSTRACTOBJECT (Primitive, VisibleRenderable) | |
| template<typename T > | |
| T * | variableData (const std::string &name, PrimitiveVariable::Interpolation requiredInterpolation=PrimitiveVariable::Invalid) |
| template<typename T > | |
| const T * | variableData (const std::string &name, PrimitiveVariable::Interpolation requiredInterpolation=PrimitiveVariable::Invalid) const |
| bool | isPrimitiveVariableValid (const PrimitiveVariable &pv) const |
| Returns true if the given primitive variable has the correct size for its interpolation type. | |
| bool | arePrimitiveVariablesValid () const |
| Returns true if all primitive variables have the correct size for their interpolation type. | |
| PrimitiveVariable::Interpolation | inferInterpolation (size_t numElements) const |
| PrimitiveVariable::Interpolation | inferInterpolation (const Data *data) const |
| virtual Imath::Box3f | bound () const |
| virtual size_t | variableSize (PrimitiveVariable::Interpolation interpolation) const =0 |
Public Attributes | |
| PrimitiveVariableMap | variables |
| Variables a stored as a public map for easy manipulation. | |
| Primitive::Primitive | ( | ) |
| Primitive::~Primitive | ( | ) | [virtual] |
| bool Primitive::arePrimitiveVariablesValid | ( | ) | const |
Returns true if all primitive variables have the correct size for their interpolation type.
References isPrimitiveVariableValid(), and variables.
Referenced by IECore::ImageCompositeOp::composite(), IECore::CurveExtrudeOp::doOperation(), IECore::TriangulateOp::modifyTypedPrimitive(), IECore::MeshVertexReorderOp::modifyTypedPrimitive(), IECore::MeshTangentsOp::modifyTypedPrimitive(), IECore::MeshPrimitiveShrinkWrapOp::modifyTypedPrimitive(), IECore::MeshDistortionsOp::modifyTypedPrimitive(), IECore::ImageCropOp::modifyTypedPrimitive(), IECore::ImageCompositeOp::modifyTypedPrimitive(), IECore::CurveTangentsOp::modifyTypedPrimitive(), and IECore::TriangulateOp::TriangulateOp::TriangulateFn::operator()().
| Imath::Box3f Primitive::bound | ( | ) | const [virtual] |
Implemented to return a box containing all the points in the variable "P" if it exists.
Implements IECore::VisibleRenderable.
Reimplemented in IECore::ImagePrimitive, and IECore::SpherePrimitive.
References variables.
| IECore::Primitive::IE_CORE_DECLAREABSTRACTOBJECT | ( | Primitive | , | |
| VisibleRenderable | ||||
| ) |
| PrimitiveVariable::Interpolation Primitive::inferInterpolation | ( | const Data * | data | ) | const |
Convenience function which finds the size of data and calls the above method.
References inferInterpolation().
| PrimitiveVariable::Interpolation Primitive::inferInterpolation | ( | size_t | numElements | ) | const |
Guesses a suitable interpolation type for a PrimitiveVariable containing the specified number of data elements. Returns PrimitiveVariable::Invalid if no such interpolation exists. Note that for a given size multiple interpolation types may well be valid, so this method may not always give the desired results. In the case of multiple suitable types, interpolations are given the following priority (highest first) :
Constant Uniform Vertex Varying FaceVarying
References IECore::PrimitiveVariable::Constant, IECore::PrimitiveVariable::FaceVarying, IECore::PrimitiveVariable::Invalid, IECore::PrimitiveVariable::Uniform, variableSize(), IECore::PrimitiveVariable::Varying, and IECore::PrimitiveVariable::Vertex.
Referenced by inferInterpolation().
| bool Primitive::isPrimitiveVariableValid | ( | const PrimitiveVariable & | pv | ) | const |
Returns true if the given primitive variable has the correct size for its interpolation type.
References IECore::PrimitiveVariable::Constant, IECore::PrimitiveVariable::data, IECore::PrimitiveVariable::interpolation, IECore::PrimitiveVariable::Invalid, and variableSize().
Referenced by arePrimitiveVariablesValid(), IECore::MeshVertexReorderOp::modifyTypedPrimitive(), IECore::MeshNormalsOp::modifyTypedPrimitive(), and IECore::FaceVaryingPromotionOp::modifyTypedPrimitive().
| const T* IECore::Primitive::variableData | ( | const std::string & | name, | |
| PrimitiveVariable::Interpolation | requiredInterpolation = PrimitiveVariable::Invalid | |||
| ) | const [inline] |
| T* IECore::Primitive::variableData | ( | const std::string & | name, | |
| PrimitiveVariable::Interpolation | requiredInterpolation = PrimitiveVariable::Invalid | |||
| ) | [inline] |
Convenience function to find name in variables, and returning a runTimeCast to the requested type. If requiredInterpolation is specified then 0 is returned if the interpolation doesn't match.
Referenced by IECoreHoudini::ToHoudiniPolygonsConverter::doConversion(), IECoreHoudini::ToHoudiniPointsConverter::doConversion(), IECoreHoudini::ToHoudiniCurvesConverter::doConversion(), IECore::PointVelocityDisplaceOp::modify(), IECore::PointSmoothSkinningOp::modify(), IECore::MeshTangentsOp::modifyTypedPrimitive(), IECore::MeshDistortionsOp::modifyTypedPrimitive(), IECore::FaceAreaOp::modifyTypedPrimitive(), and IECore::CurveTangentsOp::modifyTypedPrimitive().
| virtual size_t IECore::Primitive::variableSize | ( | PrimitiveVariable::Interpolation | interpolation | ) | const [pure virtual] |
Returns the number of values a piece of data must provide for the given interpolation type. Must be implemented in all derived classes.
Implemented in IECore::CurvesPrimitive, IECore::ImagePrimitive, IECore::MeshPrimitive, IECore::NURBSPrimitive, IECore::PatchMeshPrimitive, IECore::PointsPrimitive, and IECore::SpherePrimitive.
Referenced by inferInterpolation(), isPrimitiveVariableValid(), and IECoreHoudini::FromHoudiniGeometryConverter::transferAttribs().
Variables a stored as a public map for easy manipulation.
Referenced by arePrimitiveVariablesValid(), IECore::UVDistortOp::begin(), bound(), IECore::CurveExtrudeOp::buildPatchMesh(), IECore::ImagePrimitive::channelValid(), IECore::ImageCompositeOp::composite(), IECore::CurvesPrimitive::CurvesPrimitive(), IECoreHoudini::ToHoudiniCurvesConverter::doConversion(), IECore::TIFFImageWriter::encodeChannels(), IECore::BINParticleWriter::getPrimVar(), IECoreRI::GXEvaluator::GXEvaluator(), IECore::MeshPrimitive::MeshPrimitive(), IECore::PointVelocityDisplaceOp::modify(), IECore::PointSmoothSkinningOp::modify(), IECore::PointRepulsionOp::modify(), IECore::TransformOp::modifyPrimitive(), IECore::LuminanceOp::modifyPrimitive(), IECore::WarpOp::modifyTypedPrimitive(), IECore::TriangulateOp::modifyTypedPrimitive(), IECore::MeshVertexReorderOp::modifyTypedPrimitive(), IECore::MeshTangentsOp::modifyTypedPrimitive(), IECore::MeshPrimitiveShrinkWrapOp::modifyTypedPrimitive(), IECore::MeshPrimitiveImplicitSurfaceOp::modifyTypedPrimitive(), IECore::MeshNormalsOp::modifyTypedPrimitive(), IECore::MeshMergeOp::modifyTypedPrimitive(), IECore::MeshDistortionsOp::modifyTypedPrimitive(), IECore::ImageCropOp::modifyTypedPrimitive(), IECore::FaceVaryingPromotionOp::modifyTypedPrimitive(), IECore::FaceAreaOp::modifyTypedPrimitive(), IECore::CurveTangentsOp::modifyTypedPrimitive(), IECore::CurvesMergeOp::modifyTypedPrimitive(), IECore::CurveLineariser::modifyTypedPrimitive(), IECore::ColorSpaceTransformOp::modifyTypedPrimitive(), IECore::NURBSPrimitive::NURBSPrimitive(), IECore::TriangulateOp::TriangulateOp::TriangulateFn::operator()(), IECore::PatchMeshPrimitive::PatchMeshPrimitive(), IECore::PointsPrimitive::PointsPrimitive(), IECore::SpherePrimitive::render(), IECore::PointsPrimitive::render(), IECore::PatchMeshPrimitive::render(), IECore::NURBSPrimitive::render(), IECore::MeshPrimitive::render(), IECore::ImagePrimitive::render(), IECore::CurvesPrimitive::render(), IECoreHoudini::ToHoudiniGeometryConverter::transferAttribs(), IECoreHoudini::FromHoudiniGeometryConverter::transferAttribs(), and IECoreHoudini::FromHoudiniGeometryConverter::transferDetailAttribs().
1.5.8